(只是笔记而已,网上大把这个问题的博文,参照原文)
一、JAVA中的执行顺序
public class Tree {
public Tree(){
System.out.println("this parent tree");
}
{
System.out.println("parent block");
}
static{
System.out.println("parent static block");
}
}
public class AppleTree extends Tree{
public AppleTree(){
System.out.println("this sub appletree");
}
{
System.out.println("sub block");
}
static{
System.out.println("sub static block");
}
public static void main(String[] args){
new AppleTree();
}
}
结果为
parent static block
sub static block
parent block
this parent tree
sub block
this sub appletree
也就是说,执行的时候
- 父类静态块
- 自身静态块
- 父类块
- 父类构造器
- 自身块
自身构造器
原因可以在我另外一篇JVM的总结出来,有空的时候我再回来这里总结
二、JAVA赋值顺序