【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
1、类加载检查,当虚拟机遇到一条new指令的时候,首先去检查这个指令的参数能否在常量池定位到这个类的符合引用,并且检查这个类的符号引用是否已经被加载过,【如果没有则进行类的加载】
2、分配内存:其中如果有指针碰撞和空闲列表两张创建方式。
3、初始化零值,不包括对象头的设置。
4、设置对象头,其中包括类的元数据信息,hash值,GC age等信息,其中还会根据当前虚拟机运行状态的不同,标志是否启用偏向锁等。
5、执行init方法,进行值的初始化,方法的加载。
来源:oschina
链接:https://my.oschina.net/u/2870118/blog/3151572