回答完这个问题后,我的脑海里又多了一个。问题:为什么将整数变量值设置为Integer.MAX_VALUE
.
例如。
int x = Integer.MIN_VALUE;
x--;
if (x == Integer.MAX_VALUE) {
System.out.println("Why....");
}
必须有某种原因才能明确实施此行为,否则抛出 anException
会是一个更好的主意。我无法在 JLS 中找到/定位这种行为。
因为下溢。计算机多年来一直像这样工作,在这里抛出异常将是一个可怕的想法。
http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.2
“整数运算符不以任何方式指示上溢或下溢。”