java-sizeof
作用:计算java对象内存占用情况
1 | <dependency> |
如:计算object占用多少内存空间
1 | Object object = new Object(); |
openjdk-jol
作用:java object layout(java对象布局 查看工具)
1 | <dependency> |
如:查看object内存布局及占用情况
1 |
|
输出x信息
1 | 1837543557 |
java对象结构
https://blog.csdn.net/scdn_cp/article/details/86491792
- Java对象组成
对象的5个部分的作用:
- MarkWord主要用来表示对象的线程锁状态,另外还可以用来配合GC、存放该对象的hashCode
- KlassWord是一个指向方法区中Class信息的指针,意味着该对象可随时知道自己是哪个Class的实例
- 数组长度这是可选的,只有当本对象是一个数组对象时才会有这个部分
- 对象体是用于保存对象属性和值的主体部分,占用内存空间取决于对象的属性数量和类型
- 对齐字节(整个对象大小必须是8的倍数,不够的话,对齐字节来凑)
- MarkWord与锁