Java
 Computer >> コンピューター >  >> プログラミング >> Java

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に割り当てられ、関数が再度呼び出されます。関連する出力がコンソールに表示されます。


  1. Javaのさまざまなタイプのクラスは何ですか?

    Javaのクラスの種類 具体的なクラス 抽象メソッドを持たない通常のクラス、または親クラスまたはインターフェースのすべてのメソッドの実装を持ち、独自のメソッドを持つクラスは具象クラスです。 例 public class Concrete { // Concrete Class    static int product(int a, int b) {       return a * b;    }    public static void main(String args[]) {   &n

  2. Javaでの継承の種類

    Javaは3種類の継承をサポートしています- 単一レベルの継承-クラスは単一のクラスからプロパティを継承します。たとえば、クラスBはクラスAを継承します。 マルチレベル継承-クラスは、プロパティを継承するクラスからプロパティを継承します 階層継承-複数のクラスが単一のクラスからプロパティを継承します。たとえば、クラスBはクラスAを継承し、クラスCはクラスAを継承します。