gpt4 book ai didi

java - 将一个对象复制到另一个对象在 java 中产生不同的结果

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:52 24 4
gpt4 key购买 nike

public static void main(String[] args) {
Integer a = 1;
Integer b = 0;
b=a;
System.out.println(a);
System.out.println(b);
++a;
System.out.println(a);
System.out.println(b);
}

输出:11个2个1

public static void main(String[] args) {
ArrayList<Integer> a = new ArrayList<Integer>();
ArrayList<Integer> b = new ArrayList<Integer>();
a.add(1);
a.add(1);
a.add(1);
a.add(1);
b=a;
System.out.println(a.size());
System.out.println(b.size());
b.add(2);
System.out.println(a.size());
System.out.println(b.size());
}

输出:44个5个5

对于上面的代码,为什么两个对象都没有引用相同的内存位置。

最佳答案

实际上,所有包装类在 Java 中都是不可变的。我们知道 String 是一个著名的不可变类。除此之外,其他包装器(如 Integer)也是不可变的。

查看此 http://www.javaworld.com/article/2077343/learn-java/java-s-primitive-wrappers-are-written-in-stone.html

关于java - 将一个对象复制到另一个对象在 java 中产生不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28825533/

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