6

JNI の弱いグローバル参照とは何ですか? グローバル参照ローカル参照との違いは?

4

2 に答える 2

4

あなたの質問への答えはここにあります: http://java.sun.com/docs/books/jni/html/refs.html

書かれているとおり:

ローカル参照とグローバル参照の有効期間は異なります。ローカル参照は自動的に解放されますが、グローバルおよび弱いグローバル参照は、プログラマーが解放するまで有効なままです。

ローカル参照とグローバル参照の違いは次のとおりです。コンテキスト

ローカル参照は単なるローカル変数です。基になるオブジェクトは、そのコンテキストから抜け出すと破棄されます (それを定義したネイティブ関数から戻るなど)。

グローバル参照と同様に、弱いグローバル参照は、ネイティブ メソッド呼び出し間および異なるスレッド間で引き続き有効です。グローバル参照とは異なり、弱いグローバル参照は、基になるオブジェクトがガベージ コレクションされるのを防ぎません。

弱いグローバル参照とグローバル参照の違いは、必要に応じて (メモリ不足の場合)、弱いものによって参照されるオブジェクトをガベージ コレクションできることです。

于 2012-05-08T13:52:26.820 に答える
-1

オブジェクトに弱い参照しかない場合、gc はそれをメモリからクリアできます。

ソフト参照とは、オブジェクトもクリアしたい場合に gc を妨げない参照を意味します。ただし、オブジェクトがソフト参照によって参照されている場合、gc は可能な限りオブジェクトをメモリに保持しようとします。

于 2012-05-08T13:17:39.893 に答える