HotSpot虚拟机

一、类的创建

【1】描述:创建过程:类的加载检查->分配内存->初始化零值->设置对象头->执行init方法

  (1)类的加载检查:在常量池中定位类的符号引用并确认类是否被加载、解析和初始化过。

  (2)分配内存:

           1)指针碰撞;

           2)空闲列表;

           3)线程安全的保证:CAS+失败重试;TLAB(Thread Local Allocation Buffer)[为每一个线                   程预先在 Eden 区分配一块儿内存,JVM 在给线程中的对象分配内存时,首先在 TLAB                     分配,当对象大于 TLAB 中的剩余内存或 TLAB 的内存已用尽时,再采用上述的 CAS 进                   行内存分配]

  (3)初始化零值:将分配到的内存空间都初始化为零值;

  (4)设置对象头:将对象的哈希码、GC分代年龄等信息存放于对象头中。

  (5)执行init方法:init方法一般由程序员的意愿安排业务

二、对象的访问定位

【1】句柄:Java堆中的句柄池reference中存储对象的句柄地址,其中指针包含对象实例数据和类             型数据各自地址信息。

【2】直接指针:reference中存放的是对象的地址,指针指向访问类型数据的相关信息。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值