gpt4 book ai didi

java - 为什么不更新值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:43:18 25 4
gpt4 key购买 nike

这是一个非常基本的问题,但我似乎不明白为什么这不起作用。据我所知,ab 将是指向 Integer 对象的指针(在 C 语言中)。为什么输出是 3 2 而不是 3 3?我本以为 b 的值在递增 a 时也会递增。

Integer a = new Integer(1);
Integer b = new Integer(2);
a = b;
a++;
System.out.print(a + " " + b);

最佳答案

首先,对于 java,使用的术语是对象“引用”而不是“指针”。基本上这意味着它是对实际对象的逻辑引用。

此外,正如 Lagerbaer 已经指出的,它的 autoboxing-unboxing这是透明的,可以有效地增加值,创建一个新对象,然后将其分配回引用。

所以在增量操作结束时,有两个对象而不是一个。

拆箱后的增量操作大概是这样的:

a = Integer.valueOf(a.intValue()++);

关于java - 为什么不更新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41750777/

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