Java Long原始types最大限制
我使用的是每当我的'generateNumber'方法被调用时,以1递增的Long原始types。 如果龙达到最大限度会发生什么? 会抛出任何exception或将重置为最小值? 这里是我的示例代码:
class LongTest { private static long increment; public static long generateNumber(){ ++increment; return increment; } }
Long.MAX_VALUE
是9,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 – 如何检测?