java-对象初始化流程

1. 类的加载

2. 对象内存分配

  指针碰撞

  空闲列表

3. 处理并发安全问题

  cas/锁

  TLAB 线程的分配空间在堆内存中隔离开,在堆中为每个线程预先分配一小块不同的空间,每个线程创建对象都在自己对应的空间中完成。

4. 属性默认初始化

5. 设置对象头 

  类信息 锁信息 hashcode GC信息

6. 显示初始化

  构造器 代码块初始化 

  

原文地址:https://www.cnblogs.com/isnotnull/p/14742910.html