如果我初始化一个已经在 JAVA 中初始化的 Class 对象,会发生什么情况?

What will happen If I initialize a Class object which is already initialized in JAVA?

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

示例代码:

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

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

Object target = new MyClass();

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

第二条语句后:

target = new MyClass();

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