gpt4 book ai didi

Java 包装类对象相等 - 奇怪的行为

转载 作者:搜寻专家 更新时间:2023-11-01 02:15:41 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Wrapper class and == operator

包装类的对象相等运算符似乎根据包装值是否在字节范围内产生不同的结果。下面是演示此行为的代码片段:

System.out.println("smaller than byte");

Integer i1 = 1;

Integer i2 = 1;

if (i1 == i2) System.out.println("same");

if (i1 != i2) System.out.println("not same");

System.out.println("larger than byte");

Integer i3 = 128;

Integer i4 = 128;

if (i3 == i4) System.out.println("same");

if (i3 != i4) System.out.println("not same");

产生以下输出:

smaller than byte

same

larger than byte

not same

注意:我在 Linux 上的 HotSpot(内部版本 1.6.0_24-b07)上得到了这个输出。 Long 和 Short 也可能发生同样的情况(虽然还没有测试过)。

注意:Linux 下其他 HotSpot 构建的输出相同谁能解释一下?


小修改,只是为了让它稍微更有趣:

添加

if (i3 <= i4 && i3 >= i4) System.out.println("same after all...");

最后,打印“毕竟相同...”。

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