-2

我想知道如果我在 Java 中初始化一个已经初始化的 Class 对象会发生什么。垃圾收集器会破坏对象并释放内存吗?

示例代码:

........
Object target = new MyClass();//First intialization
........
target = new MyClass();//Re-intialization //I want to know what will happen here
........
4

2 回答 2

2
Object target = new MyClass();

这将创建一个 MyClass() 的新对象,并且target变量将引用该对象。

在第二个语句之后:

target = new MyClass();

将创建另一个新对象,target现在将引用这个新创建的对象。前一个对象将没有引用,GC将释放该内存。

于 2019-07-26T05:35:11.323 回答
0

MyClass 的第一个对象将不再在线程上处于活动状态,垃圾收集器将在堆上需要更多内存时激活并释放空间,这是 Java 虚拟机使用的一大块内存。

于 2019-07-26T04:17:15.963 回答