当虚拟遇到一个new指令时:首先去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并检查这个符号引用所代表的类是否已经加载和初始化,如果没有,需要先执行类的加载过程。加载完成后,为对象分配内存,分配完成后初始化为0值,执行new指令后会紧着执行<init>方法,把对象按着程序员的意愿初始化。
new指令------->类加载---->类分配内存-------->初始化0--------><init>初始化
转载于:https://www.cnblogs.com/abstract-fabulous/p/7204016.html