用==比较Integer和int

List<Integer> test = List.of(955, 955);
if (test.get(1) == test.get(0))
...

以上条件导致 false

List<Integer> test = List.of(955, 955);
int a = test.get(1);
int b = test.get(0);
if (a == b)
...

上述条件返回true

为什么会这样?片段之间有什么区别?

回答

在一种情况下,您正在比较两个Integer对象引用。在另一种情况下,您正在比较两个ints。当使用==运算符比较对象引用时,False如果它们不是同一个对象,即使它们包装了相同的值,它也会返回。


以上是用==比较Integer和int的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>