Java 当我将某个类变量重新分配给新对象时会发生什么?
所以我对JAVA的理解是,在第一行中,创建了SomeClass的classvar对象。 在下一行中,创建了另一个classvar对象 我的问题-这里会发生什么变化?classvar对象的引用是否会因为第二行而更新,或者第1行中创建的对象将被垃圾收集Java 当我将某个类变量重新分配给新对象时会发生什么?,java,oop,Java,Oop,所以我对JAVA的理解是,在第一行中,创建了SomeClass的classvar对象。 在下一行中,创建了另一个classvar对象 我的问题-这里会发生什么变化?classvar对象的引用是否会因为第二行而更新,或者第1行中创建的对象将被垃圾收集 编辑:添加代码标记这是一个编译错误,在java中不能有两个同名的变量 如果你是说 SomeClass classvar = new SomeClass(); --> Object classvar = new SomeClass(); --&
编辑:添加代码标记这是一个编译错误,在java中不能有两个同名的变量 如果你是说
SomeClass classvar = new SomeClass(); --> Object
classvar = new SomeClass(); --> Object 2
然后第一个对象引用第一个对象将被新引用覆盖。下次gc运行时,它将被删除。这是一个编译错误,在java中不能有两个同名的变量 如果你是说
SomeClass classvar = new SomeClass(); --> Object
classvar = new SomeClass(); --> Object 2
然后第一个对象引用第一个对象将被新引用覆盖。下次gc运行时,它将被删除。这是一个编译错误,在java中不能有两个同名的变量 如果你是说
SomeClass classvar = new SomeClass(); --> Object
classvar = new SomeClass(); --> Object 2
然后第一个对象引用第一个对象将被新引用覆盖。下次gc运行时,它将被删除。这是一个编译错误,在java中不能有两个同名的变量 如果你是说
SomeClass classvar = new SomeClass(); --> Object
classvar = new SomeClass(); --> Object 2
然后第一个对象引用第一个对象将被新引用覆盖。下次gc运行时,它将被删除。我想您可能会问:
SomeClass classvar = new SomeClass(); --> Object 1
classvar = new SomeClass(); --> Object 2
如果是这样,那么创建的第一个SomeClass对象将丢失其引用,并最终被垃圾收集(这意味着该对象将被销毁以释放内存)
classvar变量现在将引用创建的第二个SomeClass对象。我想您可能会问:
SomeClass classvar = new SomeClass(); --> Object 1
classvar = new SomeClass(); --> Object 2
如果是这样,那么创建的第一个SomeClass对象将丢失其引用,并最终被垃圾收集(这意味着该对象将被销毁以释放内存)
classvar变量现在将引用创建的第二个SomeClass对象。我想您可能会问:
SomeClass classvar = new SomeClass(); --> Object 1
classvar = new SomeClass(); --> Object 2
如果是这样,那么创建的第一个SomeClass对象将丢失其引用,并最终被垃圾收集(这意味着该对象将被销毁以释放内存)
classvar变量现在将引用创建的第二个SomeClass对象。我想您可能会问:
SomeClass classvar = new SomeClass(); --> Object 1
classvar = new SomeClass(); --> Object 2
如果是这样,那么创建的第一个SomeClass对象将丢失其引用,并最终被垃圾收集(这意味着该对象将被销毁以释放内存)
classvar变量现在将引用创建的第二个SomeClass对象。OK,在这种情况下会发生什么-->SomeClass var=new SomeClass();var=新的SomeClass();是否会创建两个对象,其中第一个对象现在有一个空引用?@akshayrajkore what case?更改您的问题以反映您在评论中所说的内容,因为它们不匹配。我和安德烈·帕金斯的答案基本上都是相同的。。非常感谢。感谢您的帮助。好的,在这种情况下会发生什么-->SomeClass var=new SomeClass();var=新的SomeClass();是否会创建两个对象,其中第一个对象现在有一个空引用?@akshayrajkore what case?更改您的问题以反映您在评论中所说的内容,因为它们不匹配。我和安德烈·帕金斯的答案基本上都是相同的。。非常感谢。感谢您的帮助。好的,在这种情况下会发生什么-->SomeClass var=new SomeClass();var=新的SomeClass();是否会创建两个对象,其中第一个对象现在有一个空引用?@akshayrajkore what case?更改您的问题以反映您在评论中所说的内容,因为它们不匹配。我和安德烈·帕金斯的答案基本上都是相同的。。非常感谢。感谢您的帮助。好的,在这种情况下会发生什么-->SomeClass var=new SomeClass();var=新的SomeClass();是否会创建两个对象,其中第一个对象现在有一个空引用?@akshayrajkore what case?更改您的问题以反映您在评论中所说的内容,因为它们不匹配。我和安德烈·帕金斯的答案基本上都是相同的。。非常感谢。感谢您的帮助。您的意思是
SomeClass classvar=newsomeclass();classvar=newsomeclass()代码>?你的问题是什么?我不明白…@Elist那很好。我得到了答案。。我想问你在第一条评论中写了什么。你的意思是SomeClass classvar=newsomeclass();classvar=newsomeclass()代码>?你的问题是什么?我不明白…@Elist那很好。我得到了答案。。我想问你在第一条评论中写了什么。你的意思是SomeClass classvar=newsomeclass();classvar=newsomeclass()代码>?你的问题是什么?我不明白…@Elist那很好。我得到了答案。。我想问你在第一条评论中写了什么。你的意思是SomeClass classvar=newsomeclass();classvar=newsomeclass()代码>?你的问题是什么?我不明白…@Elist那很好。我得到了答案。。我想问你在第一次评论中写了什么。是的。我也在问同样的问题。谢谢,是的。我也在问同样的问题。谢谢,是的。我也在问同样的问题。谢谢,是的。我也在问同样的问题。非常感谢。