jvm2对象(备忘)

 

1加载类元信息

2先计算对象占用空间大小,然后在堆中划分一块内存给新的对象。

3处理并发问题。

4属性的默认初始化(0值初始化)。

5设置对象头,指向方法区的类元信息。

6属性显式初始化、代码块中初始化和构造器中初始化。

对象内存布局

 

1(jvm通过栈帧的对象引用访问对象实例)栈帧------堆区------元数据指针------方法区。

2对象访问访问方式: 句柄访问 或 直接指针(Hotspot)。

                句柄访问: 栈帧的引用 ------ 堆中的句柄池 ----找到其中对象类型数据的指针 -------- 对象类型数据(方法区)/ ---找到对象实例数据的指针 -------- 对象实例数据(堆中的实例池)。

                直接指针:  栈帧的引用 ------ 堆中的实例数据  (对象实体中有对象类型数据的指针)

                                                                                                                        |

                                                                                                                        |

                                                                                                                        |

                                                                                                                对象类型数据(方法区)

3 句柄访问的好处栈帧引用指向的地址稳定。

4元空间属于直接内存一部分和堆无关。

                          |-------------元数据区                                                            |------ 本地内存

本地内存 ---------                                         Java process memory -----------

                          |-------------直接内存                                                            |------ 堆

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值