我有以下Java代码段:
int begin=Integer.MAX_VALUE-10;
int end=Integer.MAX_VALUE;
for(int i=begin;i<=end;i++){
System.out.println("hehe");
}
Run Code Online (Sandbox Code Playgroud)
这个代码片段将无限运行,我可以理解这是因为
i<**=**end
Run Code Online (Sandbox Code Playgroud)
但有些人说int并且Integer有不同的范围.这是真的吗?为什么?
不,int并且Integer具有完全相同的范围.
您的程序无限运行,因为当您添加1到Integer.MAX_VALUE数字溢出时,结果将是Integer.MIN_VALUE.反过来又少于Integer.MAX_VALUE.
如果这是实际问题,我建议你使用long而Long不是int和Integer
| 归档时间: |
|
| 查看次数: |
205 次 |
| 最近记录: |