https://upload-images.jianshu.io/upload_images/2062729-9a78f7ea7671a031.png
1.实例数据:存放类的属性数据信息,包括父类的属性信息;
2.对齐填充:由于虚拟机要求 对象起始地址必须是8字节的整数倍。填充数据不是必须存在的,仅仅是为了字节对齐;
3.对象头:Java对象头一般占有2个机器码(在32位虚拟机中,1个机器码等于4字节,也就是32bit,在64位虚拟机中,1个机器码是8个字节,也就是64bit),但是 如果对象是数组类型,则需要3个机器码,因为JVM虚拟机可以通过Java对象的元数据信息确定Java对象的大小,但是无法从数组的元数据来确认数组的大小,所以用一块来记录数组长度。
https://upload-images.jianshu.io/upload_images/2184951-058c47ce1215e691.png?imageMogr2/auto-orient/strip|imageView2/2/w/834/format/webp
相关文章
- 09-14Java面试中遇到的坑【填坑篇】
- 09-14微信公众号支付备忘及填坑之路-java
- 09-14Java开发从零开始填坑
- 09-14angularJS操作键值对象(类似java的hashmap)填坑小结
- 09-14Ionic3 填坑记录 - java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
- 09-14[JAVA] 日常填坑 java.lang.SecurityException: Prohibited package name: java.xxx
- 09-14自己挖的坑跪着也要填完---mapper配置文件和java源文件在同一包下
- 09-14Java web 开发填坑记 2 -如何正确的创建一个Java Web 项目
- 09-14Java生产填坑经历之全面回忆
- 09-14Java面试中遇到的坑【填坑篇】