Jol(Java Object Layout)工具

Jol 是分析和学习Java很好的工具
maven 依赖

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

来个简单的例子

    @org.junit.jupiter.api.Test
    public void objLen()  {
        Object obj = new Object();
        System.out.println(ClassLayout.parseInstance(obj).toPrintable());

        Object[] objArr = new Object[]{obj};
        System.out.println(ClassLayout.parseInstance(objArr).toPrintable());

        String a = "a";
        System.out.println(ClassLayout.parseInstance(a).toPrintable());
    }

输出如下,可以看到对象的内存结构和占用空间

java.lang.Object object internals:
OFF  SZ   TYPE DESCRIPTION               VALUE
  0   8        (object header: mark)     0x0000000000000001 (non-biasable; age: 0)
  8   4        (object header: class)    0xf80001e5
 12   4        (object alignment gap)    
Instance size: 16 bytes
Space losses: 0 bytes internal + 4 bytes external = 4 bytes total

[Ljava.lang.Object; object internals:
OFF  SZ               TYPE DESCRIPTION               VALUE
  0   8                    (object header: mark)     0x0000000000000001 (non-biasable; age: 0)
  8   4                    (object header: class)    0xf800234c
 12   4                    (array length)            1
 16   4   java.lang.Object Object;.<elements>        N/A
 20   4                    (object alignment gap)    
Instance size: 24 bytes
Space losses: 0 bytes internal + 4 bytes external = 4 bytes total

java.lang.String object internals:
OFF  SZ     TYPE DESCRIPTION               VALUE
  0   8          (object header: mark)     0x0000000000000001 (non-biasable; age: 0)
  8   4          (object header: class)    0xf80002da
 12   4   char[] String.value              [a]
 16   4      int String.hash               0
 20   4          (object alignment gap)    
Instance size: 24 bytes
Space losses: 0 bytes internal + 4 bytes external = 4 bytes total
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容