如果我重新实例化一个静态类,之前分配的内存会怎样?
最佳答案
只有嵌套类可以是static
。嵌套的 static
类的实例表现得像任何其他类的实例:
- 只要有对它的实时(即可达)引用,实例就会一直存在;
- 一旦变得不可访问,它就有资格进行垃圾收集;
- 在符合条件后的某个时候,它会被垃圾收集。
如果您实际上是在询问static
引用:
public static Object obj = object1;
public static void main(String[] args) {
obj = object2;
}
这些行为与任何其他引用一样。
在上面的代码中,一旦您重新分配 obj
以指向 object2
,这可能会也可能不会使 object1
符合垃圾收集条件。这完全取决于是否有任何幸存的引用资料。
关于java - 创建静态类的多个实例时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15410665/