java - 创建静态类的多个实例时会发生什么?

标签 java class static

如果我重新实例化一个静态类,之前分配的内存会怎样?

最佳答案

只有嵌套类可以是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/

相关文章:

java - 应用结果集的获取大小会终止程序

java - 如何在 Consumer Java 8 中抛出异常

java - 从 native 代码调用另一个包的静态 java 方法

C#,为什么 virtual、abstract 和 override 关键字对静态函数无效?

java - Java和MySQL中的时间戳和时区转换

c# - 无法使用其他语言的其他客户端连接到 WCF-XMLRPC-Server

javascript - jQuery:计算那些没有属性的元素

C++ 中继嵌套类中的成员函数?

c++ - 使用 push_back 在类中填充结构的值

C - 如何限制堆中的地址访问?