gpt4 book ai didi

Java 使用 Integer.parseInt 进行比较

转载 作者:行者123 更新时间:2023-11-30 07:45:37 27 4
gpt4 key购买 nike

Integer x1 = Integer.parseInt("4");
Integer y1 = Integer.parseInt("4");
Integer x2 = Integer.parseInt("444");
Integer y2 = Integer.parseInt("444");

System.out.println(x1==y1); // true
System.out.println(x2==y2); // false ???

Integer a1 = Integer.valueOf("4");
Integer b1 = Integer.valueOf("4");
Integer a2 = Integer.valueOf("444");
Integer b2 = Integer.valueOf("444");

System.out.println(a1==b1); // true
System.out.println(a2==b2); // false

我明白为什么第三个和第四个输出打印真假了。这是因为 valueOf 返回一个对象,包装类缓存值在 -128 到 127 范围内的对象。如果 valueOf 传递了该范围内的任何值,它应该重用缓存中的对象。否则,它将创建一个新对象。

现在,为什么第二个输出打印出 false?我以为 parseInt 会返回一个原语,而不是像 valueOf 那样的对象。

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