基元类型最大限制

我使用 Long 基元类型,每当我的‘ generateNumber’方法调用它时,它都会递增1。如果朗达到了他的极限会怎么样?将抛出任何异常或将重置为最小值? 下面是我的示例代码:

class LongTest {
private static long increment;
public static long generateNumber(){
++increment;
return increment;
}
}
300985 次浏览

它将溢出并包围到 Long.MIN_VALUE

不太可能。即使你每秒增加1,000,000倍,也需要300,000年才能溢出。

范围从 -9,223,372,036,854,775,808到 + 9,223,372,036,854,775,807。

它将从 -9,223,372,036,854,775,808开始

Long.MIN_VALUE.

超过 long 的最大值不会抛出异常,而是会回滚。如果这样做:

Long.MAX_VALUE + 1

您将注意到,结果等效于 Long.MIN _ VALUE。

从这里: Java 数超过 long.max _ value-如何检测?

Long.MAX_VALUE9,223,372,036,854,775,807

根据 这个来源,如果每纳秒执行一次函数,仍然需要292年才能遇到这种情况。

当这种情况发生时,它就会像其他人说的那样,绕到 Long.MIN_VALUE-9,223,372,036,854,775,808