1、如果只有一个类
运行顺序为:
(1)静态代码块
(2)构造代码块
(3)构造方法
(普通代码块的话就按照出现的顺序执行)
package com.interview.javabasic.jvm;
/**
* Created by luyangsiyi on 2020/3/11
*/
public class jvmTest {
static{
System.out.println("静态代码块");
}
{
System.out.println("构造代码块");
}
public jvmTest(){
System.out.println("构造方法");
}
public static void main(String[] args) {
jvmTest jvmTest = new jvmTest();
}
}
结果:
2、子类继承父类
运行顺序:
(1)父类静态代码块、子类静态代码块
(2)父类构造代码块、父类构造方法
(3)子类构造代码块、子类构造方法
package com.interview.javabasic.jvm;
/**
* Created by luyangsiyi on 2020/3/11
*/
public class jvmTest2 extends jvmTest{
static {
System.out.println("子类的静态代码块");
}
{
System.out.println("子类的构造代码块");
}
public jvmTest2(){
System.out.println("子类的构造方法");
}
public static void main(String[] args) {
jvmTest2 jvmTest2 = new jvmTest2();
}
}
结果:
父类的静态代码块、构造代码块、构造方法即对应结果中的静态代码块、构造代码块、构造方法。