java基础:new一个对象的过程

A a = new A();


1.首先是jvm工作,找到A.class,classloader开始工作,包括各种检查、校验


2.在类装载时,类中的static部分开始初始化(第一次装载的时候初始化,代码块、变量按顺序初始化)


3.new出a,堆上开辟空间


4.所有成员变量初始化,基本类型赋值默认值,引用类型赋值null


5.执行构造函数


首次加载及new对象: 
1、先执行父类的静态代码块和静态变量初始化,并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关。 (静态函数只初始化,函数被动调用,代码块是主动调用)
2、执行子类的静态代码块和静态变量初始化。 


开始new对象


3、执行父类的实例变量初始化 
4、执行父类的构造函数 
5、执行子类的实例变量初始化 
6、执行子类的构造函数 

如果类已经被加载及new对象: 
则静态代码块和静态变量就不用重复执行,再创建类对象时,只执行与实例相关的变量初始化和构造方法。

猜你喜欢

转载自blog.csdn.net/jianpan_zouni/article/details/87971443