gpt4 book ai didi

Java 2 相等对象并更改其中之一

转载 作者:行者123 更新时间:2023-12-01 11:05:26 26 4
gpt4 key购买 nike

您能向我解释一下为什么会出现以下情况吗?这种现象叫什么,我可以进一步查一下谢谢:

Date d1=new Date();
Date d2=d1;
d1.setTime(d1.getTime()+60*60*1000); // Changing d1 will automatically change d2. And visa versa.
System.out.println(d2);
System.out.println(d1);

int number1=7;
int number2=number1;
number1++;
System.out.println(number1+" "+number2); // Only number one is changed.

String str1="hiiiiii";
String str2=str1;
str1="hello";
System.out.println(str1+" "+str2); //Only str1 is changed.

非常感谢

最佳答案

第一种情况:由于 d1 和 d2 是对象引用并且引用同一个对象,因此更改 d1 将自动更改 d2。

第二种情况:number1number2 是原始类型。因此它将把number1的值复制到number2。所以只改变了第一个

第三种情况:虽然 str1str2 都是对象,并且直到第二行都引用相同的对象,但在第三行中您将重新分配值 str1。因此它将在池中创建一个新对象,str1 将引用该对象。

关于Java 2 相等对象并更改其中之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33008723/

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