欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[java]基础类型

程序员文章站 2022-05-10 21:58:10
...
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内存即可。
相关标签: java