美文网首页
计算Java对象大小

计算Java对象大小

作者: 赵信信官属 | 来源:发表于2020-08-22 16:13 被阅读0次

我们以64位虚拟机讲解

image

首先我们简单说下Java对象的内存布局


image.png

说明
1.类型指针默认占用8个字节,如果开启了UseCompressedClassPointers,类型指针占用4个字节
2.如果对象是数组,则对象头中存在对象长度,否则不存在

执行命令

$ java -XX:+PrintCommandLineFlags -version

输出如下

image.png

说明开启了UseCompressedClassPointers,则类型指针占用4字节

<dependency>
    <groupId>org.openjdk.jol</groupId>
    <artifactId>jol-core</artifactId>
    <version>0.9</version>
</dependency>

测试代码

Integer obj = new Integer(19);
System.out.println(ClassLayout.parseInstance(obj).toPrintable());

输出


image.png

一个Integer(19)占用16字节

我们设置-XX:-UseCompressedOops -XX:-UseCompressedClassPointers. 不启用压缩,再次执行上面的代码

image.png

一个Integer(19)占用24字节

读者朋友,当面试官问你new Object()在内存中占用多少字节? 你会了吗?

相关文章

  • 计算Java对象大小

    我们以64位虚拟机讲解 首先我们简单说下Java对象的内存布局 说明1.类型指针默认占用8个字节,如果开启了Use...

  • 如何计算Java对象所占内存的大小

    摘要 本文以如何计算Java对象占用内存大小为切入点,在讨论计算Java对象占用堆内存大小的方法的基础上,详细讨论...

  • 如何计算Java对象所占内存的大小

    摘要 本文以如何计算Java对象占用内存大小为切入点,在讨论计算Java对象占用堆内存大小的方法的基础上,详细讨论...

  • Java对象大小计算

    你创建的对象真正占了多少内存?作为程序员基本每天都在 new 对象,那么 new 出来的对象真正占用了多少内存呢?...

  • Java对象的字节大小

    计算Java对象的字节大小Java基本类型长度及对应对象的字节长度 基本类型长度the size of an ob...

  • 如何计算java对象的大小?

    1. 了解对象的内存布局? 2. 每部分占用多少字节说明 2.1 对象头区域 2.1.1 对象头 Mark ...

  • java 内存计算

    一、计算java对象在内存中占用的大小 来源:https://www.coursera.org/learn/alg...

  • java对象大小

    java对象包括对小偷,实例数据和对齐填充 任何一个对象都有对象头,对象头在32位系统上占用,64位系统上占用16...

  • 如何计算Java对象所占内存的大小

    背景 目前我们系统的业务代码中大量使用了LocalCache的方式做本地缓存,而且cache的maxSize通常设...

  • java 内存布局

    Java 内存的布局主要是统计Java对象占用内存的大小。 Java对象的内存布局:对象头(Header)、实例数...

网友评论

      本文标题:计算Java对象大小

      本文链接:https://www.haomeiwen.com/subject/bopvjktx.html