zoukankan      html  css  js  c++  java
  • 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");
        }
    }
    

     运行结果:CFGBAEDBAEDH

    图解:

    补记2019-05-22:

      加载顺序应该是;在编译完成后,首次加载会优先执行父类和子类中的静态代码块。其次当实例化子类对象的时候,首先会执行父类的代码块、构造,再其次是子类代码块,构造。

      再总结一下执行的优先顺序:static代码块  > {}代码块   >   构造   >  函数语句

    Best Regards
  • 相关阅读:
    webkit之滚动条美化
    意想不到的javascript
    html5 的存储
    javascript 中的number
    javascript 模板
    关于ajax的跨域
    一个菜鸟眼中的前端
    【转】python
    [转]修改python默认的编码方式
    搞科研
  • 原文地址:https://www.cnblogs.com/pecool/p/8413006.html
Copyright © 2011-2022 走看看