作者:mobiledu2502923043 | 来源:互联网 | 2024-11-07 16:57
在Java中,静态代码块和构造方法的执行顺序是一个重要的概念。本文详细分析了类加载过程中静态代码块和构造方法的执行流程。通过具体的示例代码,解释了静态变量初始化、静态代码块以及构造方法之间的相互关系和执行顺序。这对于理解类的初始化过程和确保程序的正确性具有重要意义。
参考博文:http://blog.csdn.net/gxf212/article/details/3510009
class Base {
static int a = 1;
public Base() {
System.out.println(" 55555");
}
static {
System.out.println("Static Base");
}
static void method() {
System.out.println("Base");
}
}
class Sub extends Base {
public Sub() {
System.out.println(" 44444");
}
static int b = 2;
static {
System.out.println("Static Sub");
}
}
public class Traversc {
public static void main(String[] args) {
Sub sub = new Sub();//先执行父类的构造函数,再执行子类的构造函数
Sub.method();//调用static程序段,先于构造函数执行,且永远只执行一次
//Sub.method();
//System.out.println("a=" + Sub.b);
}
}
总结:
1.构造函数,父类先执行然后再执行子类
2.static程序块先于构造函数执行,切只执行一次
3.当只单独调用static method方法时,子类的static块和所有的构造函数都不会被执行,只会执行父类的static块