Java Long原始types最大限制

我使用的是每当我的'generateNumber'方法被调用时,以1递增的Long原始types。 如果龙达到最大限度会发生什么? 会抛出任何exception或将重置为最小值? 这里是我的示例代码:

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

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

如果你每纳秒执行一次你的函数,根据这个源代码,要花292年才能遇到这种情况。

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

它会溢出并回到Long.MIN_VALUE

它不太可能。 即使你每秒增加100万次,也要花上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. 

超出长时间的最大值不会抛出exception,相反,它会回退。 如果你这样做:

 Long.MAX_VALUE + 1 

你会注意到结果是相当于Long.MIN_VALUE。

从这里: java数量超过long.max_value – 如何检测?