根据Java文档:int
类型的最小值为-2,147,483,648,最大值为2,147,483,647(包括边界)。
我有一个名为Test.java
的类。
public class Test
{
public static void main(String[] args)
{
int i=2147483647; //max positive value an int can store
for(;;)
{
System.out.println(++i);
}
}
}
据我所知,
++i
应该将i
的值增加1并抛出异常,因为在int
中不允许使用2147483648
。但是当我运行上述程序时,它会一直运行下去(因为是无限循环),而且将i
的值赋为-2147483648
,每次减少1
。以下是修改后的程序运行示例:public static void main(String[] args)
{
int i=2147483647;
for(;;)
{
System.out.println(++i);
System.out.println(++i);
System.out.println(++i);
System.out.println(++i);
System.out.println(++i);
break;
}
}
输出:
-2147483648
-2147483647
-2147483646
-2147483645
-2147483644
欢迎提供答案或提示。