首先,有一篇来自Alexey Shipilev(Oracle的前JVM工程师,现在在Redhat的)的this篇很棒的文章,解释说这并不是那么容易.

Java中的每个对象都有两个标头,它们的大小可以取决于平台或jvm的启动配置(UseCompressedOops).

然后,在字段和对象自身之间进行填充和对齐(8字节对齐).然后,有一个JVM根本不会显示的空间,因为它不能显示或确实需要显示.

所有这些事情使得计算某个对象在堆中的大小变得有些微不足道.幸运的是存在JOL.它甚至也有很多样本…这是一个小例子,假设您有这样一个类:

static class MyValue {

private final int left;

private final String right;

public MyValue(int left, String right) {

this.left = left;

this.right = right;

}

}

然后创建一个HashMap:

Map map = new HashMap<>();

System.out.println("empty map = " + GraphLayout.parseInstance(map).totalSize());

MyValue one = new MyValue(1, "one");

System.out.println("one = " + GraphLayout.parseInstance(one).totalSize());

map.put("one", one);

System.out.println("map after one = " + GraphLayout.parseInstance(map).totalSize());

MyValue two = new MyValue(1, "two");

map.put("two", two);

System.out.println("map after two = " +

GraphLayout.parseInstance(map).totalSize());

hashmap value占用空间大小_java-测量和监视大型HashMap的大小相关推荐

  1. java 文件 缓冲区大小_Java web 中文件下载遇到的缓冲大小问题

    刚才自己做一个小例子,就是在android端点击一个button,然后从服务器端下载文件到手机SD卡.结果却遇到了问题,刚开始挺兴奋的,因为自己做的可以下载下来文件了,但是自习看才发现有问题,那就是下 ...

  2. java swing 如何设置按钮大小_Java Swing - Button不改变宽度的大小

    我有一个使用FlowLayout的JPanel和一个垂直排列组件的Box. 我想要的是将其他组件的宽度大小设置为"删除列"按钮. 我试着线Java Swing - Button不改 ...

  3. 调整java字体大小_Java自动调整到Windows 7的字体大小调整

    这有两个部分: >获取您的组件,字体等 规模化 >获取您的布局 规模 对于Swing来说,第一部分很容易 – 一切都从一个电话开始. UIManager.setLookAndFeel(UI ...

  4. java iconiamge大小_java – 自动将ImageIcon缩放到标签大小

    这是一个棘手的问题.您强调了使用JLabel显示图像的事实,这是标准的处理方式,但是,JLabel是一个复杂的小野兽,具有文本,图标和文本对齐和定位. 如果您不需要所有额外功能,我只需创建一个能够绘制 ...

  5. java word 纸张大小_Java 设置 Word 页边距, 页面大小, 页面方向, 页面边框

    Java 设置 Word 页边距, 页面大小, 页面方向, 页面边框 本文将通过 Java 示例介绍如何设置 Word 页边距 (包括上, 下, 左, 右), 页面大小 (可设置 Letter/A3/ ...

  6. java bytebuffer 大小_java – 为什么DirectByteBuffer.array()有额外的大小?

    我的代码是: if (frameRGBABuffer == null) { frameRGBABuffer = ByteBuffer.allocateDirect(cameraHeight * cam ...

  7. new hashmap 初始大小_害怕面试被问HashMap?这一篇就搞定了

    来源于公众号编码之外 , 作者庆哥小白 话说以下这篇与本篇配合阅读最佳哦(jdk1.8为主) 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap ...

  8. 如何用Procmon.exe来监视SQLSERVER的logwrite大小

    如何用Procmon.exe来监视SQLSERVER的logwrite大小 在微软亚太区数据库技术支持组官方博客里面,你会发现很多篇文章都用到了Procmon.exe这个工具 今天我也介绍一下这个工具 ...

  9. Java计算一个对象所占内存大小_Java程序计算各种对象所占内存的大小的方法

    System.out.println("--- Memory Usage:"); /*打印一行字符串---Memory Usage*/ Runtime rt=Runtime.get ...

最新文章

  1. ECCV2020最佳论文解读之递归全对场变换(RAFT)光流计算模型
  2. Tomcat8中的并发ConcurrentDateFormat的实现
  3. 效率达CPU一万倍、内含800万神经元:英特尔发布神经形态芯片超算
  4. python 文件加密_python实现文件快照加密保护的方法
  5. Docker使用-Hello World
  6. (转)Managed DirectX +C# 开发(入门篇)(二)
  7. IIS添加MIME类型支持 rmvb 等播放
  8. 用opencv进行图像处理-之用matplotlib显示
  9. IEEE Fellow 2020名单揭晓!BDTC 2019重磅嘉宾周伯文、叶杰平、陈宝权上榜
  10. Win10 添加传统照片查看器
  11. 22. vCenter上解决”此主机当前没有管理网络冗余“的警告
  12. 苹果开场铃声 android,‎App Store 上的“手机铃声制作 - 铃声设置助手大全”
  13. 休闲娱乐 - 减肥餐
  14. AUTOSAR MCAL PWM
  15. svn合并时候的诡异事件
  16. 问题解决:VScode在使用中文输入法时出现vim insert模式变成vim normal的奇怪现象( jj 映射成esc)
  17. 哔哩哔哩笔试 01串求最长1子串的长度
  18. 国产操作系统能不能完全替代windows,普及大众?
  19. 2023年4月中国数据库排行榜:达梦厚积薄发夺探花,亚信、星环勇毅笃行有突破
  20. iOS开发之swift资料大全

热门文章

  1. 丘成桐:用10年时间培养一批本土一流基础科学人才
  2. 真正厉害的人,早就戒掉了“贫穷思维”
  3. 人工智能秘史(四):憧憬人机共生的“DARPA梦想家”
  4. 最新!北京电影学院成立“翟天临事件”调查组
  5. 隐私和网络安全将是未来科技发展的屏障
  6. 加加减减的奥秘——从数学到魔术的思考(一)
  7. 【深度】从朴素贝叶斯到维特比算法:详解隐马尔科夫模型
  8. hive的一些调优参数
  9. 数据结构与算法的联系
  10. 基于消息队列 RocketMQ 的大型分布式应用上云实践