今天做笔试题的时候考了关于java类的执行顺序,然后不太熟悉,特做此记录!原链接如下:
https://blog.youkuaiyun.com/ym563099457/article/details/80508032
1.类中所有属性的默认值(一举而成)
2. 父类静态属性初始化,静态块,静态方法的声明(按出现顺序执行)
3. 子类静态属性初始化,静态块,静态方法的声明 (按出现顺序执行)
4. 调用父类的构造方法,
首先父类的非静态成员初始化,构造块,普通方法的声明(按出现顺序执行)
然后父类构造方法
5. 调用子类的构造方法,
首先子类的非静态成员初始化,构造块,普通方法的声明(按出现顺序执行)
然后子类构造方法
------------------------------------------------------------
public class Test1 {
public int aa = 44;
public int tt = print2("2");
public static Test1 test1 = new Test1();
public int j = print("j");
public static int k = print1("k");
static{
System.out.println("静态代码块");
}
public Test1(){
System.out.println("构造方法");
}
public static int print(String str) {
System.out.println(str);
return 33;
}
public static int print1(String str) {
System.out.println(str);
return 33;
}
public int print2(String str) {
System.out.println(str);
return 33;
}
public static void main(String[] args) throws IOException {
System.out.println("开始执行");
Test1 t = new Test1();
}
}
执行结果:
2
j
构造方法
k
静态代码块
开始执行
2
j
构造方法
---------------------
作者:ym563099457
来源:优快云
原文:https://blog.youkuaiyun.com/ym563099457/article/details/80508032
版权声明:本文为博主原创文章,转载请附上博文链接!