gpt4 book ai didi

java - 在 Java 中,以下声明之间有什么区别?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:56:00 26 4
gpt4 key购买 nike

考虑 Java。这两个有何不同,为什么?

public void languageChecks() {
Integer a = 5;
Integer b = new Integer(5);

change(a); // a doesn't get incremented. value is 5
change(b); // b does. value is now 6
}

public void change(Integer a) {
a++;
}

最佳答案

唯一不同的是

Integer b = new Integer(5);

保证创建一个新对象。第一个将使用缓存中的实例(参见 Integer.valueOf() )。

两者都是不可变的,并且对两者的引用都是按值传递的(Java 中的所有内容都是如此)。所以 change() 对两者都没有影响。

关于java - 在 Java 中,以下声明之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4853324/

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