java 类初始化顺序

来源:互联网 发布:工具制作软件 编辑:程序博客网 时间:2024/06/06 20:42

1、类初始化产生的契机(类在第一次被主动使用的情况下)
①使用关键字new实例化对象的时候(类需要先初始化才能被实例化)。
②初始化某个类的子类的时候。
③调用某个类的静态方法。
④读取和设置类的静态字段的时候(被final放入常量池中的不算)
⑤对类进行反射调用
⑥虚拟机启动被注明是启动类(含有main的类)。

2、new一个对象的时候类成员的执行顺序。
父类的静态代码块→子类的静态代码块(类的初始化,初始化静态成员变量)→父类的代码块→父类的构造函数→子类的代码块→子类的构造函数(对象的创建,初始化非静态成员变量)

3、如有父类中有一个静态变量,子类去调用这个静态变量,那么会初始化父类,而不会初始化子类,静态变量在那个类中,调用它就会初始化那个类,因为静态变量不被继承。

原创粉丝点击