对象的创建、内存布局和访问定位
来源:互联网 发布:统计直报网乱报数据 编辑:程序博客网 时间:2024/05/10 19:03
对象的创建
- 1.虚拟机遇到一条new指令,首先检查该类是否加载,否则先执行类加载过程。
- 2.类加载检查通过,虚拟机将会为对象分配内存,内存分配完毕,然后就进行一些必要的设置,例如这个对象是哪个类的实例,如何才能找到类的元数据信息,对象的哈希吗,对象的GC分代年龄信息等。这些信息放在对象的对象头中。
- 执行init方法,把对象按照程序员的意愿进行初始化,至此,完整可用的对象完全产生。
对象的内存布局
- 对象头
- 实例数据
- 对齐填充
1.对象头
对象头分2部分,第一部分用于存储对象自身的运行时数据,如哈希码、GC年龄、锁状态、偏向线程ID等等,官方称之为Mark Word;第二部分是类型指针,虚拟机通过这个指针来确定这个对象是哪个类的实例。
2.实例数据部分
无论父类继承下来的还是子类中定义的,都存在这里。
3.对齐填充
HotSpot VM要求对象大小必须是8字节的整数倍。
对象的访问定位
主流的访问方式有2种,句柄和直接指针访问。
1.句柄
一个引用指向句柄池,池中存储对象指针和对象类型指针。注意:句柄池存储于堆中。
2.直接指针
引用直接指向对象,对象中需要额外存储空间来存储对象类型信息。
0 0
- 对象创建、内存布局和访问定位
- 对象的创建、内存布局和访问定位
- 对象的创建、内存布局、访问定位
- 对象的创建、内存布局、对象的访问定位
- 对象创建,内存布局,对象的访问定位
- JVM中的对象创建、内存布局和访问定位
- 自动内存管理机制(2)——虚拟机对象的创建、内存布局和访问定位
- HotSpot虚拟机对象的创建、内存布局、访问定位
- Java对象的创建、内存布局、访问定位
- JAVA中对象的创建、对象的内存布局、对象的访问定位
- Java中的内存区域及对象的创建、内存布局与访问定位
- 《深入理解Java虚拟机》学习笔记(二)(Java对象的创建、内存布局和访问定位)
- Java虚拟机(HotSpot)-对象:创建、内存布局、访问定位
- jvm读书笔记-2.3内存对象的创建、布局和访问
- 【深入理解JVM】:Java对象的创建、内存布局、访问定位
- 深入理解JVM02--深入理解对象的创建、内存布局、访问定位
- [深入理解JVM] Java对象的创建、内存布局、访问定位
- 深入理解Java虚拟机之对象的创建-内存布局-访问定位
- Sping MVC 自动转换 AnnotationMethodHandlerAdapter
- Android绘制圆形ImageView的几种实现方法
- JavaEE——账号注册模拟网站邮箱激活
- 关于in_addr 和inet_ntoa的用法
- Maltab画图形
- 对象的创建、内存布局和访问定位
- HTTP 协议的历史演变和设计思路
- SQL 中 RAISERROR 的用法
- CSS伪类与CSS伪元素
- 从0开始——CAD与Tekla开发入门
- CodeForces 501C
- []How To Upgrade to PHP 7 on Ubuntu 14.04
- 微软大数据平台-HDInsight
- 事务具有4个属性:原子性、一致性、隔离性、持久性