Java创建对象的过程总体上可分为四步:
Java虚拟机遇到字节码new指令时
①先看看这条指令对应的参数能否在常量池中定位到类的符号引用
②若没有,则执行类加载的过程(加载,验证,解析,初始化)
②若有,则为对象分配内存(防止并发情况下线程不安全的问题,采用CAS分配和TLAB方法)
③接下来设置对象头(此对象时哪个类的实例,对象的哈希码,GC分代年龄等)
④调用构造函数,初始化对象
参看: 《深入理解Java虚拟机,第三版》周志明著
转载请注明原文地址:https://ipadbbs.8miu.com/read-49725.html