3

静的クラスを再インスタンス化すると、以前に割り当てられたメモリはどうなりますか?

4

1 に答える 1

4

ネストされたクラスのみがstatic. ネストされたstaticクラスのインスタンスは、他のクラスのインスタンスと同じように動作します。

  • インスタンスは、そのインスタンスへのライブ (到達可能な) 参照がある限り保持されます。
  • 到達不能になると、ガベージ コレクションの対象になります。
  • 適格になった後のある時点で、ガベージ コレクションが行われます。

実際に参照について質問している場合static

public static Object obj = object1;
public static void main(String[] args) {
  obj = object2;
}

これらは他の参照と同様に動作します。

上記のコードでは、objを指すように再割り当てすると、ガベージ コレクションの対象になるobject2場合とそうでない場合があります。object1これは、それへの生き残った参照があるかどうかに完全に依存します。

于 2013-03-14T13:32:53.733 に答える