gpt4 book ai didi

java - java中两个对象是否必须具有相同的内存地址才能指向同一个对象

转载 作者:行者123 更新时间:2023-11-30 05:28:24 25 4
gpt4 key购买 nike

当您在 java 中创建两个对象时,如果将一个对象设置为另一个对象,会发生什么情况。当我们将对象设置为与另一个对象相等时,该对象的哪一部分会发生变化。是存储在堆栈中的内存地址发生变化,还是它们都开始指向堆内存中的相同内容而不更改存储在堆栈中的内存地址?

我知道最初创建时它们没有相同的内存地址,也不指向相同的东西。

例如测试 t1= new Test();

测试 t2= new Test();

t2=t1;

这条语句“t2=t1”实际上会改变t2的哪一部分?

最佳答案

Test t1= new Test();

此行创建一个新的 Test 对象,并将其分配给 t1

Test t2= new Test();

此行创建一个额外的 Test 对象,并将其分配给 t2

t2=t1;

这就像将分配给t1的对象分配给t2。原始 t2 对象现已丢失,并将在下一次垃圾收集器运行时被销毁。

This statement "t2=t1" is going to change actually what part of t2?

将 t2 视为一个指针。直到该行它指向一个对象,现在它指向另一个对象。这两个对象的内部并没有被这一行改变,只有指针被改变。

关于java - java中两个对象是否必须具有相同的内存地址才能指向同一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58043080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com