美文网首页java基础
java代码的执行顺序

java代码的执行顺序

作者: java面试收割机 | 来源:发表于2017-10-10 10:04 被阅读5次

    java 静态代码块 静态方法区别

    静态代码块是主动执行的,在项目启动的时候就初始化, 静态方法在类加载的时候 就已经加载 可以用类名直接调用,两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的.

    代码执行顺序

    class Parent {
        {
            System.out.println("parent block");//3
        }
        static {
             System.out.println("parent static block");//1
        }
    
        public Parent() {
            System.out.println("parent constructor");//4
        }
    }
    
    class Child extends Parent {
        {
            System.out.println("child block");//5
        }
        static {
            System.out.println("child static block");//2
        }
    
        public Child() {
          System.out.println("child constructor");//6
        }
    }
    
    public class Test{
        public static void main(String[] args) {
        new Child();
        }
    }
    

    输出结果:
    parent static block
    child static block
    parent block
    parent constructor
    child block
    child constructor
    对象的初始化顺序:
    执行父类静态的内容
    执行子类的静态的内容
    父类非静态代码块,接着执行父类的构造方法。
    子类非静态代码块,接着执行子类的构造方法。
    总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法

    相关文章

      网友评论

        本文标题:java代码的执行顺序

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