Java 里 long 可以计数多久

0 条评论

long 作为 JVM 的 primitive 类型之一,是 64bit 长的有符号数字,它的大小范围是 -9223372036854775808 到 9223372036854775807 (-263 to 263- 1),而我们经常使 long (比如 AtomicLong 对象)用来计数,那么现在可以算算,在我们的使用场景下,long 可以使用多久就会达到最大值呢?

假如我们的使用场景中,每一秒使用计数器计数 10w 次,并且不间断保持计数,那么一天会计数 10w*60*60*24=8,640,000,000, 也就是约 86 亿次, 这个数字看起来很大了,我们用 long 的最大值来除以试试

9223372036854775807/8640000000=1067519911.6730064591435185185185

也就是大概可以不间断地计数 10.6 亿天,换算成年呢?

1067519911.6730064591435185185185/365=2924712.086775360162037037037037

也就是大概 292w 年,所以,如果计数器要求每天计数 86 亿次的情况下,long 可以支持我们的程序跑上几百万年,完全不用担心溢出的问题。

相关日志 Relate Posts

收藏与分享 : Twitter | Facebook | 微博 | 人人 | Google+ | PDF

发表留言(Ctrl+Enter提交)