java类加载时执行顺序
Posted more harder, the more fortunat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java类加载时执行顺序相关的知识,希望对你有一定的参考价值。
源代码 |
class HelloA { public HelloA() { System.out.print("A"); } { System.out.print("B"); } static { System.out.print("C"); } } public class HelloB extends HelloA { public HelloB() { System.out.print("D"); } { System.out.print("E"); } static { System.out.print("F"); } public static void main(String[] args) { System.out.print("G"); new HelloB(); new HelloB(); System.out.print("H"); } } 运行结果: |
图解:
补记2019-05-22:
加载顺序应该是;在编译完成后,首次加载会优先执行父类和子类中的静态代码块。其次当实例化子类对象的时候,首先会执行父类的代码块、构造,再其次是子类代码块,构造。
再总结一下执行的优先顺序:static代码块 > {}代码块 > 构造 > 函数语句
以上是关于java类加载时执行顺序的主要内容,如果未能解决你的问题,请参考以下文章