1、请解释一下对象的加载过程?
(1)类的加载 (2)类的连接: 校验、准备、解析 (3)类的初始化 (4)申请对象内存 (5)成员变量赋默认值 (6)调用构造方法 a.成员变量顺序赋初始值 b.执行构造方法语句
2、对象在内存中的存储布局?
3、一个new Object() 占多少字节?
一个new Object() 占多少字节? 16 对象头 8字节 ClassPoniter 打开是压缩的4字节 Padding 4字节 一个new int[] 占多少字节? 16 对象头 8字节 ClassPoniter 打开是压缩的4字节 int 4字节 一个new int[] 占多少字节? 不压缩 对象头 8字节 ClassPointer 不压缩8字节 int 4字节 Padding 4字节
4、对象头中包含什么?
为什么分代年龄最大为15岁? 分代年龄在对象头中占4位,15岁不能修改。
5、对象定位
(1)句柄池(间接指针) 效率低,垃圾回收GC的时候效率较高 (2)直接指针 HotSpot - 效率高



