数据的溢出问题:
a) 代码片段:
int max = Integer.MAX_VALUE;
System.out.println("最大的Int==》" + max);
System.out.println("最大的Int+1==》" + (max + 1));
System.out.println("最大的Int+2==》" + (max + 2));
==》运行结果:
最大的Int==》2147483647
最大的Int+1==》-2147483648
最大的Int+2==》-2147483647
==》分析:可见当最大的int值再加上1,就会变成最小的int,构成了一个循环, 如果要避免这中情况就要加上大小判断,或者使用较大的表示范围的数据类型。
==》改进:
int max = Integer.MAX_VALUE;
System.out.println("最大的Int==》" + max);
System.out.println("最大的Int+1==》" + (max + 1L));
System.out.println("最大的Int+2==》" + ((long)max + 2));
==》运行结果:
最大的Int==》2147483647
最大的Int+1==》2147483648
最大的Int+2==》2147483649