Java int vs Integer - 不同的范围

时间:2016-09-23 11:35:53

标签: java

我有以下Java代码段:

int begin=Integer.MAX_VALUE-10;
int end=Integer.MAX_VALUE;

for(int i=begin;i<=end;i++){
    System.out.println("hehe");
}

此代码段将无限运行,我可以理解这是因为

i<**=**end

但有些人说intInteger的范围不同。这是真的吗?为什么?

1 个答案:

答案 0 :(得分:6)

没有。 intInteger的范围完全相同。

您的程序无限运行,因为当您向1添加Integer.MAX_VALUE时会出现数字溢出,结果将为Integer.MIN_VALUE。反过来小于Integer.MAX_VALUE

如果这是实际问题,建议您使用longLong代替intInteger