在经过this问题后,我脑子里互相抱怨。
问题:为什么整数变量值设置为Integer.MAX_VALUE
。
例如
int x = Integer.MIN_VALUE;
x--;
if (x == Integer.MAX_VALUE) {
System.out.println("Why....");
}
必须有一些原因可以明确地实现此行为,否则抛出Exception
会更好。我无法在JLS中找到/找到此行为。
答案 0 :(得分:3)
由于下溢。计算机已经这样工作多年了,抛出一个例外将是一个可怕的想法。
答案 1 :(得分:1)
http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.2
“整数运算符不以任何方式表示溢出或下溢。”