Java 为什么int变量值在Integer.MIN_值并递减时设置为Integer.MAX_值

Java 为什么int变量值在Integer.MIN_值并递减时设置为Integer.MAX_值,java,integer,operators,Java,Integer,Operators,在经历了这个问题之后,我脑海中浮现出了另一个问题。 问题:为什么整型变量值设置为integer.MAX\u value 例如 必须有某种原因才能明确实现此行为,否则抛出异常将是一个更好的主意。我在JLS中找不到/定位此行为 因为下溢。计算机已经这样工作多年了,在这里抛出异常将是一个可怕的想法。因为下溢。计算机已经这样工作多年了,在这里抛出异常将是一个可怕的想法。 “整数运算符不以任何方式表示溢出或下溢。” “整数运算符不会以任何方式表示溢出或下溢。”因为在其他语言中都是这样的吗?我假设是因为创建

在经历了这个问题之后,我脑海中浮现出了另一个问题。 问题:为什么整型变量值设置为
integer.MAX\u value

例如


必须有某种原因才能明确实现此行为,否则抛出
异常将是一个更好的主意。我在JLS中找不到/定位此行为

因为下溢。计算机已经这样工作多年了,在这里抛出异常将是一个可怕的想法。

因为下溢。计算机已经这样工作多年了,在这里抛出异常将是一个可怕的想法。

“整数运算符不以任何方式表示溢出或下溢。”


“整数运算符不会以任何方式表示溢出或下溢。”

因为在其他语言中都是这样的吗?我假设是因为创建异常对象和抛出与性能相关it@PradeepSimha我不认为性能是他们主要关心的问题,因为这是罕见的情况,此外,功能不能因性能而受损。java中已经有很多异常,不一定是每种其他语言,而是处理器体系结构本身。因为在每种其他语言中都是这样的?我假设是因为创建异常对象和抛出与性能相关it@PradeepSimha我不认为他们主要关心的是表现,由于这是一种罕见的情况,加上功能不能超过性能。java中已经有很多异常,不一定是其他语言,而是处理器体系结构本身。但是抛出异常是个坏主意,如果用
IntegerValueUnderFlowException
代替数学上和逻辑上错误的赋值,会有什么副作用。@GauravGupta处理器也是这样工作的。当然,它确实设置了指示发生下溢的标志,但这不是一个错误,比如除以零。但是抛出异常是个坏主意,如果用
IntegerValueUnderFlowException
代替数学上和逻辑上错误的赋值,会有什么副作用。@GauravGupta处理器也是这样工作的。当然,它确实设置了指示下溢发生的标志,但这不是一个被零除的错误。这就是我想要的。谢谢这是我想要的。谢谢
int x = Integer.MIN_VALUE;
x--;
if (x == Integer.MAX_VALUE) {
    System.out.println("Why....");
}