首先铺垫一下,这段代码的输出是什么?
public static void main(String []args){ System.out.println(Integer.MAX_VALUE + 1); }
很多人可能很快就能答出来,正确答案是:-2147483648
那么接下来看这段代码:
public static void main(String []args){ Long total = Long.MAX_VALUE; for (int i = 0; i < total; i++) { System.out.println(i); } }
乍看之下似乎没啥大毛病,但是结合前面的铺垫,就会发现:
当 i 增长到 Integer.MAX_VALUE 的时候,“奇迹”出现了。接下来,下一个 i 值变为了 -2147483648。跟 (更多…)