静态代码块、代码块、构造器、main方法的执行顺序

来源:互联网 发布:linux jmx监控tomcat 编辑:程序博客网 时间:2024/06/05 19:14

java对象的初始化顺序


(1)类加载之后,按从上到下(从父类到子类)执行被static修饰的语句;

(2)当static语句执行完之后,再执行main方法;

(3)如果有语句new了自身的对象,将从上到下执行构造代码块、构造器(两者可以说绑定在一起)。


看代码:

public class TestStaticF {public TestStaticF(){System.out.println("这里是构造器F");}{System.out.println("这里是代码块F");}static{System.out.println("这里是静态代码块F");}}

public class TestStatic extends TestStaticF{public TestStatic(){System.out.println("这里是构造器");}{System.out.println("这里是代码块");}static{System.out.println("这里是静态代码块");}public static void main(String[] args){System.out.println("开始执行main方法");TestStatic ts=new TestStatic();}}

输出:

这里是静态代码块F
这里是静态代码块
开始执行main方法
这里是代码块F
这里是构造器F
这里是代码块
这里是构造器


结论:由此可见静态块的加载是在main方法前执行的,先执行代码块后执行构造方法,有父类到子类。

注意:子类的代码块并不优先于父类的构造。

0 0
原创粉丝点击