java类的初始化的执行顺序
牛B的框架学的也不扎实,会用是会用,根本无从头绪的去理解其含义,已经成了固定模式化的机器,一点一点巩固基础吧!
自己敲了一下看看
1、创建这个执行顺序的父类ExecutionSequenceDemo01
public class ExecutionSequenceDemo01 {
/**
* @Description
* @Author shiyunpeng
* @Date 2018\12\18 0018 20:55
* @Param [a]
* @Return a
* @Exception
*/
{
System.out.println("父:构造块");
}
static {
System.out.println("父:静态代码块");
}
public ExecutionSequenceDemo01(){
System.out.println("父:构造方法");
}
}
2、执行顺序的子类ExecutionSequenceDemo02 来 继承 这个父类ExecutionSequenceDemo01
public class ExecutionSequenceDemo02 extends ExecutionSequenceDemo01{
{
System.out.println("子:构造块");
}
static {
System.out.println("子:静态块");
}
public ExecutionSequenceDemo02(){
System.out.println("子:构造方法");
}
public static void main(String[] args) {
ExecutionSequenceDemo01 e = new ExecutionSequenceDemo01();
}
}
3、在子类的main()方法中创建父类对象执行运行结果:
父:静态代码块
子:静态块
父:构造块
父:构造方法
4、main()方法中再用多态来创建个对象
public static void main(String[] args) {
ExecutionSequenceDemo01 e = new ExecutionSequenceDemo01();
System.out.println("---------------------------------------");
ExecutionSequenceDemo01 e1 = new ExecutionSequenceDemo02();
}
5、执行结果:
父:静态代码块
子:静态块
父:构造块
父:构造方法
---------------------------------------
父:构造块
父:构造方法
子:构造块
子:构造方法
综上所得结果:
- 静态代码块只执行一回
- 静态代码块最先执行
- 构造块,new个对象构造一次
得:好像没啥东西,这顺序也很好屡,只要满足这条件即可!