类的加载顺序

来源:互联网 发布:大连弘历软件 编辑:程序博客网 时间:2024/04/28 00:40

一:如果是单独一个类:

public class Test1 {

private static String st = setSt(); // 1.走这里初始化静态成员
private String s = "我是成员"; // 4.非静态成员初始化,初始化之后赋值

static{ // 3.静态代码块
System.out.println("我是静态代码块");
}

public Test1(){ // 5.构造器
System.out.println("我是构造器");
System.out.println(st);
System.out.println(s);
}

public static String setSt(){ // 2.给静态成员赋值
System.out.println("我刚经过初始化:"+st);
return "我是静态成员";
}

public static void main(String[] args) {

new Test1();
}

}

输出的结果是:

我刚经过初始化:null
我是静态代码块
我是构造器
我是静态成员
我是成员

从上面可以看出一个类的加载顺序:

1.先初始化静态成员。

2.给静态成员赋值。

3.静态代码块

4.非静态成员初始化,然后赋值

5.非静态代码块

6.构造器


二:如果是子类继承父类
new 子类()时的顺序

1.初始化 父类静态代码,按顺序初始化静态属性(静态成员)和静态代码块(如果 静态属性 在 静态代码块 后面,则先初始化 静态代码块)


2.初始化 子类静态代码,


3.初始化 父类的非静态代码


4.初始化 父类构造函数


5.初始化 子类非静态代码


6.初始化 子类构造函数


0 0
原创粉丝点击