|
|
1
14
编辑; 哦,天哪,我是个白痴,我给了hashmap信息,而不是hashtable。但是,在检查之后,出于内存目的,实现是相同的。 这取决于VM的内部内存设置(项目的打包,32位或64位指针,以及单词对齐/大小),而Java没有指定。 可以找到估计内存使用的基本信息 here . 你可以这样估计:
因此,将其组合在一起(对于32/64位Sun Hotspot JVM): hashmap需要24个字节(本身,主字段)+12个字节(槽数组常量)+每个槽4或8个字节+每个条目24/40个字节+键对象大小+值对象大小+将每个对象填充为8个字节的倍数 或者,大致(最多默认设置,不保证精确):
注意:这需要更多的检查,64位虚拟机上的对象开销可能需要12个字节。 我不确定空值——空值的指针可能以某种方式被压缩。 |
|
|
2
4
很难估计。我会先读这个: http://www.codeinstructions.com/2008/12/java-objects-memory-structure.html 只需使用sunjdk工具计算出k、v和 jmap-历史记录 num实例字节类名称 1:126170 19671768 MYK玻璃 2:126170 14392544 MYV玻璃 3:120000我的哈希表 如果不需要同步,也可以使用hashmap而不是hashtable。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |