Java int vs Integer - 不同的范围

ava*_*lon -1 java

我有以下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有不同的范围.这是真的吗?为什么?

tal*_*lex 7

不,int并且Integer具有完全相同的范围.

您的程序无限运行,因为当您添加1Integer.MAX_VALUE数字溢出时,结果将是Integer.MIN_VALUE.反过来又少于Integer.MAX_VALUE.

如果这是实际问题,我建议你使用longLong不是intInteger