この記事では、Java の強参照、弱参照、仮想参照について説明します。必要な方は参考にしてください。
強参照
オブジェクトに強参照がある場合、メモリ領域が不十分な場合、Java 仮想マシンはそれを再利用しません。 OutOfMemoryError エラーが発生すると、プログラムが異常終了します。また、強参照を持つオブジェクトをランダムに再利用してもメモリ不足の問題は解決されません。
SoftReference
十分なメモリ領域がある場合、メモリ領域が不十分な場合、ガベージ コレクタはそれを再利用しません。ガベージ コレクターがオブジェクトを再利用しない限り、オブジェクトはアプリケーションで引き続き使用できます。ソフト参照により、メモリ依存のキャッシュが有効になります。
弱い参照 Weakreference
弱い参照のみを持つオブジェクトは、プロセス中に、ガベージ コレクター スレッドが管理するメモリ領域をスキャンします。弱い参照のみを持つオブジェクトが検出されると、現在のメモリ領域が十分であるかどうかに関係なく、そのメモリが再利用されます。ただし、ガベージ コレクタは優先度が非常に低いスレッドであるため、それらのオブジェクトが必ずしもすぐに見つかるとは限りません。弱参照のみを持つオブジェクト。
仮想参照PhantomReference
仮想参照はオブジェクトのライフサイクルを決定しません。オブジェクトが仮想参照のみを保持する場合、そのオブジェクトには Like 参照はありません。 、いつでもリサイクルできます。
参照キュー ReferenceQueue
参照キューは、ソフト参照、弱参照、仮想参照と組み合わせて使用できます。また、仮想参照も組み合わせて使用する必要があります。ソフト参照 (弱い参照または仮想参照) によって参照されるオブジェクトがガベージ コレクションされている場合、Java 仮想マシンはこの参照を、それに関連付けられた参照キューに追加します。
rreeee以上がJava の強参照、ソフト参照、弱参照、仮想参照の比較入門の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。