JVM系列3 对象创建、布局、访问和内存分配

2019-02-12  本文已影响0人  莫小归

参考:
对象创建、布局和访问:https://www.jianshu.com/p/ac162726d7de
对象内存分配:https://www.jianshu.com/p/fa3569127416

一.对象的创建

1.类加载检查
2.为对象分配内存
3.内存空间初始化
4.对象设置

虚拟机对对象进行必要设置,将设置信息存入对象的对象头,如:

5.init

二.对象的内存布局

1.对象 = 对象头(Header) + 实例数据(Instance Data) + 对齐填充(Padding)
2.对象头(Header)

包括数据信息类型指针两部分

3.实例数据(Instance Data)
4.对齐填充(Padding)

三.对象的访问定位

1.句柄
通过句柄访问对象
2.直接指针
HotSpot通过直接指针访问对象

四.对象内存分配策略

1.对象优先分配在新生代Eden区
2.大对象直接进入老年代
3.长期存活对象进入老年代
4.动态对象年龄判定
5.空间分配担保

清溪非陇水,翻作断肠流

上一篇 下一篇

猜你喜欢

热点阅读