java代码块,静态代码块,静态变量,构造方法执行顺序
Posted 京魂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java代码块,静态代码块,静态变量,构造方法执行顺序相关的知识,希望对你有一定的参考价值。
一个类中执行顺序:
静态变量
静态代码块
代码块
构造方法
子类和父类执行顺序:
父类静态变量
父类静态代码块
子类静态变量
子类静态代码块
父类代码块
父类构造方法
子类代码块
子类构造方法
直接看代码,一目了然。
public class Test { public static void main(String[] args) { new A(); /* 结果: * A静态变量 A静态代码块 A代码块 A构造方法 * */ new B(); /* * 结果: * A静态变量 A静态代码块 B静态变量 B静态代码块 A代码块 A构造方法 B代码块 B构造方法 * */ } } class A{ static C c =new C("A"); { System.out.println("A代码块"); } static { System.out.println("A静态代码块"); } public A(){ System.out.println("A构造方法"); } } class B extends A{ static C c =new C("B"); { System.out.println("B代码块"); } static { System.out.println("B静态代码块"); } public B(){ System.out.println("B构造方法"); } } class C { public C(String str){ System.out.println(str+"静态变量"); } }
以上是关于java代码块,静态代码块,静态变量,构造方法执行顺序的主要内容,如果未能解决你的问题,请参考以下文章