SomeClass classvar = new SomeClass(); --> Object
classvar = new SomeClass(); --> Object 2
所以我对JAVA的理解是,在第一行中,创建了SomeClass的classvar对象。 在下一行中,还有另一个由classvar创建的对象。
我的问题 - 这里会有什么变化?是否会因为第二行ORR而更新classvar对象的引用,第1行中创建的对象将被垃圾收集?
编辑:添加代码标记
答案 0 :(得分:2)
我想你可能会问:
SomeClass classvar = new SomeClass();// --> Object 1
classvar = new SomeClass();// --> Object 2
如果是这种情况,那么创建的第一个SomeClass对象将失去其引用并最终被垃圾收集(这意味着该对象被销毁以释放内存)。
现在,classvar变量将引用已创建的第二个SomeClass对象。
答案 1 :(得分:1)
这是一个编译错误,你不能在java中有两个同名的变量
如果你的意思是
SomeClass classvar = new SomeClass(); --> Object 1
classvar = new SomeClass(); --> Object 2
然后第一个对象引用第一个Object将被新引用覆盖。下次gc运行时,它将被删除。