请选择 进入手机版 | 继续访问电脑版

资源之家

 找回密码
 立即注册
搜索
查看: 1760|回复: 1

java打印对象头等信息

[复制链接]

升级   100%

125

主题

126

帖子

1216

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1216
发表于 2021-9-15 15:20:22 | 显示全部楼层 |阅读模式
maven:
[code]  <dependency>
            <groupId>org.openjdk.jol</groupId>
            <artifactId>jol-core</artifactId>
            <version>0.9</version>
        </dependency>[/code]

新建一个DemoTest类
[code]package com.yjq.b2b.test;

/**
* @Auther: yjq
* @Date: 2021/9/15 14:09
* @Description: TODO
* @Version 1.0
*/
public class DemoTest {
    boolean flag = false;
}
[/code]

新建Demo1类
[code]package com.yjq.b2b.test;

import org.openjdk.jol.info.ClassLayout;
import org.openjdk.jol.vm.VM;

/**
* @Auther: yjq
* @Date: 2021/9/15 14:10
* @Description: TODO
* @Version 1.0
*/
public class Demo1 {
    static DemoTest demoTest;
    public static void main(String[] args) {
        demoTest = new DemoTest();
        System.out.println("befor lock");
        System.out.println(ClassLayout.parseInstance(demoTest).toPrintable());

        //加锁
        sysn();

        System.out.println("after lock");
        System.out.println(ClassLayout.parseInstance(demoTest).toPrintable());
    }


    public static void sysn(){
        synchronized (demoTest){
            System.out.println("lock ing");
           System.out.println(ClassLayout.parseInstance(demoTest).toPrintable());
        }
    }
}
[/code]运行结果:
[code]befor lock
com.yjq.b2b.test.DemoTest object internals:
OFFSET  SIZE      TYPE DESCRIPTION                               VALUE
      0     4           (object header)                           01 00 00 00 (00000001 00000000 00000000 00000000) (1)
      4     4           (object header)                           00 00 00 00 (00000000 00000000 00000000 00000000) (0)
      8     4           (object header)                           43 c1 00 f8 (01000011 11000001 00000000 11111000) (-134168253)
     12     1   boolean DemoTest.flag                             false
     13     3           (loss due to the next object alignment)
Instance size: 16 bytes
Space losses: 0 bytes internal + 3 bytes external = 3 bytes total

lock ing
com.yjq.b2b.test.DemoTest object internals:
OFFSET  SIZE      TYPE DESCRIPTION                               VALUE
      0     4           (object header)                           60 f5 72 02 (01100000 11110101 01110010 00000010) (41088352)
      4     4           (object header)                           00 00 00 00 (00000000 00000000 00000000 00000000) (0)
      8     4           (object header)                           43 c1 00 f8 (01000011 11000001 00000000 11111000) (-134168253)
     12     1   boolean DemoTest.flag                             false
     13     3           (loss due to the next object alignment)
Instance size: 16 bytes
Space losses: 0 bytes internal + 3 bytes external = 3 bytes total

after lock
com.yjq.b2b.test.DemoTest object internals:
OFFSET  SIZE      TYPE DESCRIPTION                               VALUE
      0     4           (object header)                           01 00 00 00 (00000001 00000000 00000000 00000000) (1)
      4     4           (object header)                           00 00 00 00 (00000000 00000000 00000000 00000000) (0)
      8     4           (object header)                           43 c1 00 f8 (01000011 11000001 00000000 11111000) (-134168253)
     12     1   boolean DemoTest.flag                             false
     13     3           (loss due to the next object alignment)
Instance size: 16 bytes
Space losses: 0 bytes internal + 3 bytes external = 3 bytes total
[/code]

[发帖际遇]: yjq_120 发帖时在路边捡到 3 金钱,偷偷放进了口袋. 幸运榜 / 衰神榜
回复

使用道具 举报

升级   100%

342

主题

1300

帖子

3678

积分

禁止发言

积分
3678
发表于 2021-10-24 08:04:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|资源之家 ( 粤ICP备20022132号 )|网站地图

GMT+8, 2022-8-13 02:48 , Processed in 0.065323 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表