日期:2014-05-20 浏览次数:20644 次
for(int i = Integer.MAX_VALUE -1; i>0 ; i++){ System.out.println(i); }
------解决方案--------------------
楼主理解的完全正确,等i超过整数的范围时,会溢出,此时i<0了
------解决方案--------------------
int基本类型是有范围的-2147483648~2147483647。
------解决方案--------------------
不会成死循环,不过栈内存分配太多变量,容易造成栈溢出现象,另外我们知道int类型的最大值为2G-1
2的32次方-1
内存补码为01111111 11111111 11111111 11111111
当进入下一次循环时i+1此时i=2G根据2进制补码原则补码为
10000000 00000000 00000000 00000000
变为int类型的最小值。从这个循环我们可以得到一个结论
int 类型最大值+1=int 类型最小值
------解决方案--------------------
嗯,不是死循环。楼上讲 int 类型最大值+1=int 类型最小值 是正确的。