如果我重新实例化一个静态类,那么先前分配的内存会发生什么?
答案 0 :(得分:4)
只有嵌套类可以是static
。嵌套static
类的实例的行为类似于任何其他类的实例:
如果您实际上询问static
参考:
public static Object obj = object1;
public static void main(String[] args) {
obj = object2;
}
这些行为与任何其他参考文献一样。
在上面的代码中,一旦您重新分配obj
以指向object2
,这可能会或可能不会使object1
符合垃圾回收的条件。这完全取决于是否有任何幸存的引用。