pdf文档 Java 对象的创建过程

389.87 KB 4 页 0 评论
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档详细阐述了Java对象的创建过程,包括类加载检查、内存分配、初始化零值、设置对象头和执行init方法等五个步骤。内存分配方式主要有指针碰撞和空闲列表两种,具体选择取决于Java堆是否规整。此外,文档还介绍了对象访问的两种方式:句柄和直接指针,分别具各自的优势,如句柄地址稳定、直接指针速度快等。整个过程全面描述了Java虚拟机在对象创建和访问上的实现细节。
AI总结
《Java 对象的创建过程》 本文详细介绍了Java对象创建的完整过程,并探讨了对象访问的方式。以下是核心内容的总结: 1. **对象创建过程**: - **类加载检查**:虚拟机遇到new指令时,检查类的符号引用是否已加载、连接、解析和初始化,未完成则进行类加载。 - **分配内存**:为对象在堆中分配内存,主要方式包括: - **指针碰撞**:适用于堆规整的情况,通过空闲指针移动来分配空间。 - **空闲列表**:适用于堆碎片化的情况,维护空闲内存块列表。 - **并发安全解决**:使用CAS(乐观锁)和TLAB(线程本地分配缓冲区)防止分配内存时的线程竞争。 - **初始化零值**:将分配的内存空间设置为零值,确保对象字段可以直接使用。 - **设置对象头**:存储对象的类元数据、哈希码、GC代年龄等信息。 - **执行init方法**:调用构造函数,按照程序员设定初始化对象。 2. **对象访问方式**: - **句柄访问**:堆中划分句柄池,reference存储句柄地址。优点是对象移动时reference无需修改,句柄更新实例指针。 - **直接指针访问**:reference直接存储对象地址,优势是速度更快,省去一次指针定位开销。 总结:文中详细阐述了Java对象的创建过程及访问方式,分别介绍了五个创建步骤和两种访问方式的特点。
P1
P2
P3
P4
下载文档到本地,方便使用
文档评分
请文明评论,理性发言.