Java几个面试题
1、对象的创建过程
①、将对象加载到内存,并初始化类的静态变量,赋默认初始值,执行静态语法。
②、申请对象内存空间。
③、成员赋默认初始值。
④、执行构造方法初始化:成员变量按顺序赋初始值、执行构造方法语句(先执行父类的构造方法super)。
2、对象在内存中的存储布局
案例:Object o = new Object()包含多少字节
答案:8(对象头8个字节)+4(classPoint指针压缩4个字节)+0(没有实例数据,也就是成员变量)+4(Padding对齐)=16个字节
3、对象头具体包含什么?
从上图可以看到GC的分代年龄占了4位,所以GC的年龄默认最大是15。