美文网首页java学习
NO.49 代码执行顺序

NO.49 代码执行顺序

作者: smallnumber | 来源:发表于2017-08-19 23:41 被阅读0次

    我们通过案例来深化java中代码的运行顺序。

    public class App {

      private static App d = new App();

      private SubClass t = new SubClass();

      static {

        System.out.println(3);

      }

      public App() {

        System.out.println(4);

      }

      public static void main(String[] args) {

        System.out.println("Hello");

      }

    }

    class SuperClass {

      SuperClass() {

        System.out.println("构造SuperClass");

      }

    }

    class SubClass extends SuperClass {

      static {

        System.out.println(1);

      }

      public SubClass() {

        System.out.println(2);

      }

    }

    以上代码执行结果为:

    1)1----App类依赖于SubClass类,所以会先把SubClass类的字节码加载进JVM

    2)构造SuperClass----会先调用父类的构造器

    3)2----非static字段的初始化其实就在构造器中,会优先构造器的其他语句执行的

    4)4----然后调用App的构造器

    5)3----加载App的静态资源

    6)Hello----运行主方法

    相关文章

      网友评论

        本文标题:NO.49 代码执行顺序

        本文链接:https://www.haomeiwen.com/subject/kmsxdxtx.html