A a = new A();
1.首先是jvm工作,找到A.class,classloader开始工作,包括各种检查、校验
2.在类装载时,类中的static部分开始初始化(第一次装载的时候初始化,代码块、变量按顺序初始化)
3.new出a,堆上开辟空间
4.所有成员变量初始化,基本类型赋值默认值,引用类型赋值null
5.执行构造函数
A a = new A();
1.首先是jvm工作,找到A.class,classloader开始工作,包括各种检查、校验
2.在类装载时,类中的static部分开始初始化(第一次装载的时候初始化,代码块、变量按顺序初始化)
3.new出a,堆上开辟空间
4.所有成员变量初始化,基本类型赋值默认值,引用类型赋值null
5.执行构造函数