为什么 == 与 Integer.valueOf(String) 的比较会给出 127 和 128 的不同结果?
我不知道为什么这些代码行返回不同的值:
System.out.println(Integer.valueOf("127")==Integer.valueOf("127"));
System.out.println(Integer.valueOf("128")==Integer.valueOf("128"));
System.out.println(Integer.parseInt("128")==Integer.valueOf("128"));
输出为:
true
false
true
为什么第一个返回,第二个返回?和 之间有什么我不知道的不同吗?(我当然知道<。true
false
127
128
127
128
另外,为什么第三个会返回?true
我已经阅读了这个问题的答案,但我仍然不明白它如何返回,以及为什么第二行中的代码返回。true
false