位置:- 正文

Java对象在内存中的结构(java对象内存大小计算)

编辑:rootadmin

推荐整理分享Java对象在内存中的结构(java对象内存大小计算),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:java对象内存分配方式,java对象内存占用,java对象在内存中如何存储,java对象在内存中存储的结构,java对象内存结构,java对象在内存中存储的结构,java对象在内存中实例化的过程,java对象在内存中实例化的过程,内容如对您有帮助,希望把文章链接给更多的朋友!

635

1、对象头,分为MarkWord和KlassPoint。

Java对象在内存中的结构(java对象内存大小计算)

MarkWord(标记字段):默认存储对象的HashCode,代替年龄和锁定标记位置信息。它会根据对象的状态重用自己的存储空间,也就是说,MarkWord中存储的数据会随着锁定标记位置的变化而变化。

KlassPoint(类型指针):对象指向其类元数据的指针,虚拟机通过该指针确定该对象属于哪一类。

2、实例数据。这部分主要是存储数据信息和父类信息。

3、对齐填充。因为虚拟机要求对象的起始地址是8字节的整数倍,所以填充数据不一定存在,只是为了字节对齐。

一个空对象占8个字节,是因为对齐填充的关系,不到8个字节对齐填充会帮助我们自动完成。

实例

publicclassTestStudent{publicstaticvoidmain(String[]args){intn=10;//栈存储intm=10;//栈存储Studentstu=newStudent();//属性赋值stu.name="张三";System.out.println(stu.name);//null张三System.out.println(stu.age);//0//调用Stringname="ls";//局部变量(常量池)Stringaaaa="ls";Stringpwd="123";stu.login(name,pwd);System.out.println("name:"+name);//lsSystem.out.println("执行");classStudent{//属性Stringname;intage;//用户登录//StringuserName;//Stringpwd;publicvoidlogin(StringuserName,Stringpwd){System.out.println(userName+"===="+pwd);//ls123publicvoidshow(){System.out.println("姓名:"+name+",年龄:"+age);

以上就是Java对象在内存中的结构,希望对大家有所帮助。更多Java学习指路:Java基础

本文链接地址:https://www.jiuchutong.com/zhishi/310915.html 转载请保留说明!
下一篇链接:https://www.jiuchutong.com/zhishi/310916.html
免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络