ホームページ  >  記事  >  Java  >  Java の Reference のいくつかの一般的な関数の詳細な説明

Java の Reference のいくつかの一般的な関数の詳細な説明

怪我咯
怪我咯オリジナル
2017-07-02 10:34:051878ブラウズ

この記事では、主に Java の Reference の複数の関数に関する関連情報をサンプル コードを通じて詳しく紹介します。必要な友人はエディターに従って一緒に学習できます。 。 バー。

はじめに

Java のいくつかのリファレンス関数も、面接でよく聞かれる質問で、一度覚えたら忘れてしまっていましたが、時間があるので簡単にテストしてみました。詳細な紹介を見てみましょう:

具体的なコードは次のとおりです:

JVM パラメーター: -Xmx10m -Xms5m -XX:+PrintGC

SoftReference:


弱い 以下を指す場合:


StrongReference:

strongはJVMのデフォルトであるため、OOM

PhantomReference:

virtualreferenceが実行されるまではまったくリサイクルされません。メモリリサイクルメカニズムを変更するのではなく、リサイクル中に ReferenceQueue に入れて、ログの印刷などの追加操作を行うようにユーザーに通知するだけです。次のコードは、本質的には、byte[] が依然として強参照です。

出力:


要約:

StrongReference: JVM のデフォルト、GC 中に
    object
  • 参照がない限り、OOM であってもリサイクルされません

    弱い参照: 一度参照されなくなると、GC 中にリサイクルされます
  • SoftReference: GC 中にオブジェクト参照がない限り、strong と同じですが、それ以外の場合は... OOM までリサイクルされないため、SoftReference は一般的に次のようになります。
  • caching
  • sun.nio.ch.Util に使用されます private
  • static
  • ThreadLocal> localSelector

    = new ThreadLocal>() ;
  • 一時的なセレクター用。
  • PhantomReference:
  • コンストラクター
  • を介して渡されるReferenceQueueは、オブジェクトがリサイクルされるときに追加の操作を実行するための通知として機能します。

以上がJava の Reference のいくつかの一般的な関数の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。