【发布时间】:2017-02-23 03:30:56
【问题描述】:
我正在使用 Java ArrayList。
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(-129);
list.add(-129);
return (list.get(0) == list.get(1));
返回值为假。 我知道这一定是范围问题,因为当我使用 -128 时,它返回 true。 但是有人能告诉我它的原因吗?
【问题讨论】:
-
您正在检查引用相等性。请改用
.equals()。 -128 有效,因为它在缓存值的范围内。 -
如果是这样,为什么 -128 给出真值?
-
整数缓存 - 看看我的答案。