静态变量代码块和静态方法的执行顺序
Posted my12
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了静态变量代码块和静态方法的执行顺序相关的知识,希望对你有一定的参考价值。
我们来看一段代码,下面的代码一目了然
class A{ static int i=0; static { System.out.println("静态代码块A"); } public A(){ System.out.println("构造方法A"); } { System.out.println("代码块A"); } static { i++; System.out.println("在类A中静态变量i="+i); } } public class B extends A{ static { System.out.println("静态代码块B"); } public B(){ System.out.println("构造方法B"); } { System.out.println("代码块B"); } public static void main(String[] args) { System.out.println("main方法"); new B(); System.out.println("--------------------"); new B(); } static { i++; System.out.println("在类B中静态变量i="+i); } }
执行结果
我们可以得出以下结论
- 静态变量是全局变量
- 静态方法在类加载时被执行,只会被执行一次
- 静态变量和静态方法按照声明的顺序依次执行
- 父类的静态方法>子类的静态方法>Main函数>父类的代码块>父类的构造方法>子类的代码块>子类的构造方法
以上是关于静态变量代码块和静态方法的执行顺序的主要内容,如果未能解决你的问题,请参考以下文章