ホームページ  >  記事  >  Java  >  Java の強参照、ソフト参照、弱参照、仮想参照の比較入門

Java の強参照、ソフト参照、弱参照、仮想参照の比較入門

不言
不言転載
2019-02-11 11:08:402905ブラウズ

この記事では、Java の強参照、弱参照、仮想参照について説明します。必要な方は参考にしてください。

強参照

オブジェクトに強参照がある場合、メモリ領域が不十分な場合、Java 仮想マシンはそれを再利用しません。 OutOfMemoryError エラーが発生すると、プログラムが異常終了します。また、強参照を持つオブジェクトをランダムに再利用してもメモリ不足の問題は解決されません。

SoftReference

十分なメモリ領域がある場合、メモリ領域が不十分な場合、ガベージ コレクタはそれを再利用しません。ガベージ コレクターがオブジェクトを再利用しない限り、オブジェクトはアプリケーションで引き続き使用できます。ソフト参照により、メモリ依存のキャッシュが有効になります。

弱い参照 Weakreference

弱い参照のみを持つオブジェクトは、プロセス中に、ガベージ コレクター スレッドが管理するメモリ領域をスキャンします。弱い参照のみを持つオブジェクトが検出されると、現在のメモリ領域が十分であるかどうかに関係なく、そのメモリが再利用されます。ただし、ガベージ コレクタは優先度が非常に低いスレッドであるため、それらのオブジェクトが必ずしもすぐに見つかるとは限りません。弱参照のみを持つオブジェクト。

仮想参照PhantomReference

仮想参照はオブジェクトのライフサイクルを決定しません。オブジェクトが仮想参照のみを保持する場合、そのオブジェクトには Like 参照はありません。 、いつでもリサイクルできます。

参照キュー ReferenceQueue

参照キューは、ソフト参照、弱参照、仮想参照と組み合わせて使用​​できます。また、仮想参照も組み合わせて使用​​する必要があります。ソフト参照 (弱い参照または仮想参照) によって参照されるオブジェクトがガベージ コレクションされている場合、Java 仮想マシンはこの参照を、それに関連付けられた参照キューに追加します。

rreeee

以上がJava の強参照、ソフト参照、弱参照、仮想参照の比較入門の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はsegmentfault.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。