当你增加一个整数超过它的最大值时会发生什么? [英] What happens when you increment an integer beyond its max value?
问题描述
在 Java 中,当你增加一个整数(或字节/短/长)超过它的最大值时会发生什么?它是否环绕到最大负值?
In Java, what happens when you increment an int (or byte/short/long) beyond it's max value? Does it wrap around to the max negative value?
AtomicInteger.getAndIncrement()
是否也有同样的行为?
Does AtomicInteger.getAndIncrement()
also behave in the same manner?
推荐答案
内置整数运算符不指示任何上溢或下溢方式.
The built-in integer operators do not indicate overflow or underflow in any way.
结果由语言指定,与 JVM 版本无关:Integer.MAX_VALUE + 1 == Integer.MIN_VALUE
和 Integer.MIN_VALUE - 1 == Integer.MAX_VALUE
代码>.其他整数类型也是如此.
The results are specified by the language and independent of the JVM version: Integer.MAX_VALUE + 1 == Integer.MIN_VALUE
and Integer.MIN_VALUE - 1 == Integer.MAX_VALUE
. The same goes for the other integer types.
原子整数对象(AtomicInteger
、AtomicLong
等)在内部使用普通的整数运算符,因此 getAndDecrement()
等.也有这种行为.
The atomic integer objects (AtomicInteger
, AtomicLong
, etc.) use the normal integer operators internally, so getAndDecrement()
, etc. behave this way as well.
这篇关于当你增加一个整数超过它的最大值时会发生什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!