1

変数がプログラム (Java) 内に存在する期間を教えてください。つまり、メソッド内で宣言された変数、パラメーターで使用される変数、STATIC 変数、メソッドから戻るために使用される変数などです。

ありがとう。

4

2 に答える 2

3
  1. メソッド内で宣言された参照は、メソッドが終了するとスコープ外になります。
  2. メソッドに渡されたパラメーターは、それらへの参照がなくなるかスコープ外になるまで、GC の対象になりません。
  3. 静的参照はクラスに関連付けられており、クラスがロードされている限り存続します。
  4. 返された参照は、それらへの参照がなくなるか範囲外になるまで、GC の対象になりません。
于 2009-10-08T00:03:51.373 に答える
2

Java のオブジェクトは、ルート セットの推移的な閉包によって参照可能である限り存続することが保証されています。これは、アプリケーションのライブ オブジェクトの保守的な近似値です¹。

編集:この質問はオブジェクトのライフタイムまたは変数のスコープに関するものですか? いくつかの用語が混在しています。

¹ ライブ オブジェクトは、アプリケーションが終了する前に再度参照されるオブジェクトです。

于 2009-10-08T00:06:30.993 に答える