Java长整型原始类型的最大限制

143

我正在使用long原始类型,每当调用我的“generateNumber”方法时它就会增加1。如果long达到最大限制,会发生什么?会抛出任何异常还是会重置为最小值? 以下是我的示例代码:

class LongTest {
   private static long increment;
   public static long generateNumber(){
       ++increment;
       return increment;
   }
}

3
范围很大 - 8字节的有符号整数(二进制补码)。范围从-9,223,372,036,854,775,808到+9,223,372,036,854,775,807。 http://www.cafeaulait.org/course/week2/02.html - Caffeinated
5
当达到最大值后,下一步将会回滚至最小值。 - Smit
4个回答

425

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

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

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


299
那真是个出色的消息来源。 - Preston
53
至少有很大的机会,这个来源不会过期。 - Oliver Dixon
7
我喜欢这个来源! - fareed
5
独立来源 ;-)) - DerMike
12
9223372036854775807(不带逗号),以便像我这样想复制该数字的人使用。 - matthew.kempson
显示剩余5条评论

47

它会溢出并循环到Long.MIN_VALUE

但这不太可能发生。即使您每秒增加1,000,000次,也需要大约300,000年才能溢出。


10

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

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

Long.MIN_VALUE.

10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接