[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内存即可。
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内存即可。
上一篇: 项目成本超支在哪里
下一篇: 《北平的春天》周作人