JAVA程序执行顺序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA程序执行顺序相关的知识,希望对你有一定的参考价值。
先给结论:
执行顺序:父类静态块->子类静态块(main函数执行前)->父类块->父类构造器->子类块->子类构造器
赋值顺序:成员变量赋值->块赋值->构造器赋值
1 class A{ 2 static{System.out.println("Class A");} 3 {System.out.println("Class c");} 4 public A(){ 5 System.out.println("this class A"); 6 } 7 } 8 9 public class Test1 extends A{ 10 static {System.out.println("class B");} 11 public Test1(){ 12 System.out.println("this class B"); 13 } 14 {System.out.println("class d");} 15 public static void main(String[] args) { 16 System.out.println("----start ---"); 17 new Test1(); 18 new Test1(); 19 System.out.println("---end---"); 20 } 21 } 22 23 结果为: 24 Class A 25 class B 26 ----start --- 27 Class c 28 this class A 29 class d 30 this class B 31 Class c 32 this class A 33 class d 34 this class B 35 ---end---
****
赋值步骤为
- 父类的静态变量赋值
- 自身的静态变量赋值
- 父类成员变量赋值
- 父类块赋值
- 父类构造器赋值
- 自身成员变量赋值
- 自身块赋值
- 自身构造器赋值
以上是关于JAVA程序执行顺序的主要内容,如果未能解决你的问题,请参考以下文章
Java中的Static静态代码块以及各代码块之间的执行顺序