`
MyEyeOfJava
  • 浏览: 1126363 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7af2d6ca-4fe1-3e9a-be85-3f65f7120bd0
测试开发
浏览量:70236
533896eb-dd7b-3cde-b4d3-cc1ce02c1c14
晨记
浏览量:0
社区版块
存档分类
最新评论

[java]基础类型

阅读更多
1 byte = 1字节  = 8bit 可表达 2的八次方个数字    = 256
1 short= 2字节  = 16bit 可表达2的十六次方个数字  = 65536 约6W
1 char = 2字节  = 16bit 可表达2的十六次方个数字  = 65536 约6W
1 int  = 4字节  = 32bit 可表达2的32次方个数      = 4294967296 约42亿
1 float= 4字节  = 32bit 可表达2的32次方个数      = 4294967296 约42亿
1 long = 8字节  = 64bit 可表达2的64次方个数      = 18446744073709551616 约184亿亿 184*10^16次方
1 double= 8字节  = 64bit 可表达2的64次方个数     = 18446744073709551616 约184亿亿


知道这些,才能理解bitmap需要多大的内存来计算10亿个数字里是否有重复数字,每个数字是一个IP,可见存储这些数据只需要一个int大小的内存已经足以,但运算还是需要内存的。


bitmap是比hash更加优越的地方在于此吧

1个IP 192.168.101.129 为12位的数据,也就是说有10亿个12位的数字。1个12位的数字99999999999 999亿那么需要一个double类型的数字来表示这个12位的数字,1个double类型占用8字节,也就是大概需要10亿*8字节来做这个事情,总共需要内存10亿byte,约0.93G内存即可。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics