java对象布局查看工具_Java 查看对象布局工具 - Java Object Layout
引入依赖
org.openjdk.jol
jol-core
0.10
使用方式/**
* 测试 User 对象在内存中的布局
*
* @author CHAN
* @date 2020/04/28
*/
public class JolTest {
public static void main(String[] args) {
User user = new User();
String s = ClassLayout.parseInstance(user).toPrintable();
System.out.println(s);
}
static class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
}
对象的状态
输出结果如下:可以看出对象占用内存 20 字节,但是因为 JVM 虚拟机是 64 位,所以大小必须是 8 字节的倍数,于是对象被填充为 24 字节。
com.zqskate.blogs.web.ui.service.test.JolTest$User 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 4 int User.age 0
16 4 java.lang.String User.name null
20 4 (loss due to the next object alignment)
Instance size: 24 bytes
Space losses: 0 bytes internal + 4 bytes external = 4 bytes total
对象的五种状态:无锁状态、偏向锁、轻量锁、重量锁、GC标记
java对象布局查看工具_Java 查看对象布局工具 - Java Object Layout相关推荐
- java input是关键字吗_Java中对象的串行化(Serialization)和transient关键字 - 金色阳光...
Java中对象的串行化(Serialization)和transient关键字: 对象的串行化(Serialization) 一.串行化的概念和目的 1.什么是串行化 对象的寿命通常随着生成该对象的程 ...
- java怎么判断对象不为空_java判断对象是否为空的方法
java判断对象是否为空的方法 发布时间:2020-06-25 14:39:17 来源:亿速云 阅读:134 作者:Leah 这篇文章将为大家详细讲解有关java判断对象是否为空的方法,文章内容质量较 ...
- java中比较对象面积的大小_java 面积对象考试题
1.分析下列Java代码: class A{ public static void main(String[] args){ method(); static void method(){ try{ ...
- java 日历工具_java之日历处理工具类Calendar类
编程语言 java之日历处理工具类Calendar类 字号+ 作者:小虾米 2016-11-08 12:43 Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR.MONTH.DAY_O ...
- java dump 工具_Java线程Dump分析工具--jstack
jstack用于打印出给定的java进程ID或core file或远程调试服务的Java堆栈信息,如果是在64位机器上,需要指定选项"-J-d64",Windows的jstack使 ...
- java序列化和反序列化工具_Java 序列化和反序列化工具类并解决StreamCorruptedException问题 | 学步园...
问题: 若通过ObjectOutputStream向一个文件中多次以追加的方式写入Object,为什么用ObjectInputStream读取这些Object时,会产生StreamCorruptedE ...
- java有几种变量_java有多少种变量?java类变量怎么使用?
相信有很多刚入行学习java技术的人,对java有多少种变量都不是很清楚,清楚的了解java变量java人员才可以写出好代码,那么java有多少种变量?今天我们就来讲解一下. 成员变量:就是声明为类的 ...
- java 所有类的超类_Java中所有类的超类Object
Object的地位 在Java中所有的类都继承于Object类,但不用在声明一个类时显示的extends Object Object中几个重要的方法: 1.equals方法: 用于检测一个对象是否等于 ...
- java date 加一天_Java 8中的时间JAVA成长之路
Java 8新增了LocalDate和LocalTime接口,为什么要搞一套全新的处理日期和时间的API?因为旧的java.util.Date实在是太难用了. java.util.Date月份从0开始 ...
- jredis 工具_java中的redis工具类
1.redis基础类packagecom.qlchat.component.redis.template;importjavax.annotation.PostConstruct;importorg. ...
最新文章
- php上传图文教程,PHP 上传图片、文件的方法
- Java Web开发乱码问题
- MLPerf最新AI芯片跑分:谷歌TPU和英伟达打破记录
- matlab 最后一列,求大神帮我解释一下matlab最后几行是什么意思
- 找不到atlapp.h的解決方法
- Java虚拟机的功能
- python3语法糖_Python笔记3:语法糖
- Android 11 无法调起微信支付解决方案
- 源表字段修改以后引发GoldenGate同步失败
- Android GridView属性集合
- 批次程序安裝手冊寫法
- Shiro框架-史上详解
- YOLO系列目标检测算法-YOLOv2
- linux centos7 下ruby 下载安装
- 计算机网络宽带越大 网速越快,如何调节自己的电脑网速?几个步骤教你如何给电脑提速与降速!...
- SpringCloud 之分布式 CAP 定理
- 美团一面:线程崩溃了,进程也会崩溃吗?
- 计算机编程情话,程序员的土味情话~(表白代码第二波)
- 华为交换机端口配置删除_华为交换机配置_华为交换机怎么清除端口下所有配置?...
- 搭建无广告免费小说网站------简述(一)