您的位置:首页 > 编程语言 > Java开发

关于Java的静态块和和非静态块(构造块)的加载顺序

2016-02-26 13:49 295 查看
http://www.cnblogs.com/guoyuqiangf8/archive/2012/10/31/2748909.html

顺序如下:

父类静态初始化块

子类静态初始化块

父类非静态初始化块

父类的构造方法

子类非静态初始化块

子类的构造方法

如果有静态方法的调用的话,静态初始化块和静态方法的调用的先后顺序,是根据写在类中的先后顺序来的。

例如:下面的的情况的话,先调用静态初始化块,再调用parentStaticMethod2。

static

{

System.out.println("父类静态初始化块");

}

public static int t = parentStaticMethod2();

public static int parentStaticMethod2()

{

System.out.println("父类的静态方法2");

return 9;

}

如果把调用静态方法的赋值语句放到最前面的话,先调用parentStaticMethod2,再调用静态初始化块。

public static int t = parentStaticMethod2();

static

{

System.out.println("父类静态初始化块");

}

public static int parentStaticMethod2()

{

System.out.println("父类的静态方法2");

return 9;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: