我正在使用Long基元类型,每当我的'generateNumber'method调用时,它就会递增1.如果Long达到他的最大限制会发生什么?会抛出任何异常还是会重置为最小值?这是我的示例代码:
class LongTest {
private static long increment;
public static long generateNumber(){
++increment;
return increment;
}
}
Run Code Online (Sandbox Code Playgroud)
Kre*_*ase 358
Long.MAX_VALUE是9,223,372,036,854,775,807.
如果您每纳秒执行一次函数,根据此来源,遇到这种情况仍需要292年.
当这种情况发生时,它只会环绕Long.MIN_VALUE,或-9,223,372,036,854,775,808正如其他人所说的那样.
Zut*_*tty 44
它会溢出并缠绕到Long.MIN_VALUE.
虽然不太可能.即使你每秒增加1,000,000次,也需要大约30万年才能溢出.
范围从-9,223,372,036,854,775,808到+9,223,372,036,854,775,807.
它将从-9,223,372,036,854,775,808开始
Long.MIN_VALUE.
Run Code Online (Sandbox Code Playgroud)
超过long的最大值并不会抛出异常,而是会反过来.如果你这样做:
Long.MAX_VALUE + 1
Run Code Online (Sandbox Code Playgroud)
你会注意到结果相当于Long.MIN_VALUE.
从这里:java数量超过long.max_value - 如何检测?
| 归档时间: |
|
| 查看次数: |
259356 次 |
| 最近记录: |