Integer.MAX_VALUE 面试题
如下代码:
1 | final int start = Integer.MAX_VALUE-100; |

输出结果为?
没有输出结果
分析
Integer.MAX_VALUE用二进制表示1111 1111 1111 1111 1111 1111 1111 111
所以当i++一直到=end时,即i = Integer.MAX_VALUE时,此时计算的结果为100,但是当接着往下面执行时,i++即 i = Integer.MAX_VALUE+1,i此时二进制1111 1111 1111 1111 1111 1111 1111 111 + 1 的结果为-1000 0000 0000 0000 0000 0000 0000 0000,即i = -2147483648,符合 i < end条件,所以循环接着往下执行,一直到=end,+1后又变为负数,周而复始,所以不会有结果输出。