如果我重新实例化一个静态类,之前分配的内存会发生什么?
问问题
1636 次
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 回答