java中程序的初始化顺序是先父类的静态变量、父类的静态代码块、子类静态变量、子类的静态代码块、父类的非静态变量、父类的非静态方法、父类的构造方法、子类的非静态变量、子类的非静态方法、子类的构造方法。举例如下:
public class A {
static {
System.out.println("AAAAAA1");
}
{
System.out.println("AAAAAAA2");
}
public A(){
System.out.println("AAAAAAAA3");
}
}
public class B extends A{
static {
System.out.println("BBBBBBB1");
}
{
System.out.println("BBBBBB2");
}
public B(){
System.out.println("BBBBBBB3");
}
}```
```java
public class Mytest {
public static void main(String[] args) {
new B();
}
}```
运行结果为:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200329173629415.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjUyODk3,size_16,color_FFFFFF,t_70#pic_center)