gpt4 book ai didi

Java clone() 浅拷贝

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

下面的代码并没有像 Javadoc 中提到的 clone() 方法那样创建浅拷贝

// Do the same with object arrays
obj O[] = new obj[5];
obj Oc[] = O.clone();

System.out.println("Identity hashcode of obj arrays");
System.out.println(System.identityHashCode(O));
System.out.println(System.identityHashCode(Oc));

// check objects equalness
if(O.equals(Oc)){
System.out.println("Objects are equal!");
}

输出:

Identity hashcode of obj arrays
2018699554
1311053135

我哪里错了?

最佳答案

是的,输出符合预期。两个数组的身份哈希码将不同,因为它们是顶层的 2 个不同的对象(由 2 个不同的引用指向)。因此,if.. 条件也失败了。

浅拷贝的意思是:容器(数组、列表等)将被创建,但其中的 ht 元素/引用不会被新创建,相反,将使用/复制原始引用。

关于Java clone() 浅拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33410209/

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