English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaでオブジェクトがGC条件を満たすための方法はいくつかありますか?

未参照オブジェクトの破棄プロセスをゴミ収集(GC)。オブジェクトを参照解除すると、未使用のオブジェクトとして見なされ、そのためJVMは 自動的にオブジェクトを破棄します。

オブジェクトがGC条件を満たすための方法がいくつかあります。

オブジェクトに対する参照を解除することで

一旦オブジェクトの作成目的が達成されると、すべての利用可能なオブジェクト参照を「 null ”。

public class GCTest1 {
   public static void main(String [] args){
      String str = "Welcome to w3codebox"; // String object referenced by variable str and it is       not eligible for GC yet.
      str = null; // String object referenced by variable str is eligible for GC.
      System.out.println("str eligible for GC: " + str);
   }
}

出力結果

str eligible for GC: null


参照変数を他のオブジェクトに再割り当てることで

私たちが参照変数が別のオブジェクトを参照するようにできる。参照変数とオブジェクトを解耦し、別のオブジェクトを参照するように設定することで、以前に参照していたオブジェクトはGCを使用して再利用できます。

public class GCTest2 {
   public static void main(String [] args){
      String str1 = "Welcome to w3codebox";
      String str2 = "Welcome to Tutorix"; // String object referenced by variable str1 and str2 and         is not eligible for GC yet.
      str1 = str2; // String object referenced by variable str1 is eligible for GC.
      System.out.println("str1: " + str1);
   }
}

出力結果

str1: Welcome to Tutorix
おすすめ