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

Java 9でのCleanerクラスの使用法は何ですか?


プログラムの実行中に作成されたオブジェクトはガベージコレクターによって自動的に削除されます (GC)。スレッドによって参照されていないオブジェクトがあり、JVMがこのオブジェクトにアクセスできないと判断した場合、そのオブジェクトはガベージコレクションの対象となる可能性があります。

Objectクラスにはfinalize()があります GCによって自動的に呼び出されるメソッド ヒープからオブジェクトを削除しようとする前。 Java 9 finalize() メソッドは非推奨になりました および新しいクラスjava.lang.ref.Cleaner ガベージコレクション管理に追加されました。 クリーナーのオブジェクト オブジェクトがガベージコレクションの対象になると、クラスは自動的に通知されます。ガベージコレクションされているオブジェクトは、クリーナーオブジェクトに登録する必要があります register()を使用する メソッド。

import java.lang.ref.Cleaner;
public class CleanerTest {
   public static void main(String args[]) {
      System.out.println("TutorialsPoint");
      Cleaner cleaner = Cleaner.create();
      if(true) {
         CleanerTest myObject = new CleanerTest();
            cleaner.register(myObject, new State());    // register cleaner
      }
      for(int i = 1; i <= 10000; i++) {
         String[] largeObject = new String[1000];
         try {
            Thread.sleep(1);
         } catch(InterruptedException e) {
              e.printStackTrace();
         }
      }
   }
   private static class State implements Runnable {
      public void run() {
         System.out.print("Cleaning action");
      }
   }
}

出力

TutorialsPoint
Cleaning action

  1. JavaでのsetBounds()メソッドの使用は何ですか?

    レイアウト マネージャー 追加されたコンポーネントの位置とサイズを自動的に決定するために使用されます。レイアウトマネージャーがない場合は、コンポーネントの位置とサイズを手動で設定する必要があります。 setBounds() このような状況では、メソッドを使用して位置とサイズを設定します。コンポーネントの位置とサイズを手動で指定するには、フレームのレイアウトマネージャーを nullにすることができます。 。 setBounds() setBounds() メソッドには4つの引数が必要です。最初の2つの引数は、x座標とy座標です。 左上の コーナー コンポーネントの3番目の引数は幅です コ

  2. JavaのContainerクラスの重要性は何ですか?

    コンテナ コンテナ クラスは、コンポーネントの収集を保持できる特別なコンポーネントとして説明できます。 スイングコンテナには2つのタイプがあり、トップレベルのコンテナです。 および低レベルのコンテナ。 トップレベルのコンテナは重量級です JFrameなどのコンテナ 、Jアプレット 、 JWindow 、および JDialog 。 低レベルのコンテナは軽量です JPanelなどのコンテナ 。 最も一般的に使用されるコンテナはJFrame 、 JPanel およびJWindow 。 Containerクラスの重要なメソッドはadd()です。 、 invalidate() およびval