Javaでの参照の種類
データのガベージコレクションの方法に基づいて、4種類の参照があります。
- 強力な参照
- 弱参照
- ソフト参照
- ファントム参照
強力なリファレンス
これは、参照オブジェクトのデフォルトのタイプです。アクティブな強力な参照を持つオブジェクトは、ガベージコレクションできません。強く参照されている変数がnullを指している場合にのみ可能です。例を見てみましょう-
例
class Demo { //Some functionality } public class Demo_example{ public static void main(String[] args){ Demo my_inst = new Demo(); my_inst = null; } }
弱参照
これらは参照オブジェクトのデフォルトクラスではないため、明示的に指定する必要があります。通常、エントリオブジェクトを参照するために、WeakHashmapで使用されます。このような弱参照は、Java仮想マシンによるガベージコレクションとしてマークされます。このような参照は、「java.lang.ref.WeakReference」クラスを使用して作成されます。
例を見てみましょう-
例
import java.lang.ref.WeakReference; class Demo{ public void display_msg(){ System.out.println("Hello"); } } public class Demo_sample{ public static void main(String[] args){ Demo inst = new Demo(); inst.display_msg(); WeakReference<Demo> my_weak_ref = new WeakReference<Demo>(inst); inst = null; inst = my_weak_ref.get(); inst.display_msg(); }
出力
Hello Hello
Demoという名前のクラスには、「display_msg」という名前の関数があります。この関数は、関連するメッセージを表示します。「Demo_sample」という名前の別のクラスで、メイン関数が定義され、デモクラスのインスタンスが作成されます。 「display_msg」関数がインスタンスで呼び出されます。 DemoクラスへのweakReferenceが作成され、Demo insatneがnullに割り当てられ、関数が再度呼び出されます。関連する出力がコンソールに表示されます。
-
Javaのさまざまなタイプのクラスは何ですか?
Javaのクラスの種類 具体的なクラス 抽象メソッドを持たない通常のクラス、または親クラスまたはインターフェースのすべてのメソッドの実装を持ち、独自のメソッドを持つクラスは具象クラスです。 例 public class Concrete { // Concrete Class static int product(int a, int b) { return a * b; } public static void main(String args[]) { &n
-
Javaでの継承の種類
Javaは3種類の継承をサポートしています- 単一レベルの継承-クラスは単一のクラスからプロパティを継承します。たとえば、クラスBはクラスAを継承します。 マルチレベル継承-クラスは、プロパティを継承するクラスからプロパティを継承します 階層継承-複数のクラスが単一のクラスからプロパティを継承します。たとえば、クラスBはクラスAを継承し、クラスCはクラスAを継承します。