如果我初始化一个已经在 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 将释放该内存。
我想知道如果我在 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 将释放该内存。