基础类型

转自http://myeyeofjava.iteye.com/blog/1738143

1G=1024M=1024K=1024BYTE=8BIT 

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内存即可。

你可能感兴趣的:(基础类型)