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

java代码的执行顺序

作者: 132xin | 来源:发表于2020-03-16 23:58 被阅读0次

    若类还未被加载

    1. 先执行父类的静态代码块和静态变量初始化,并且静态代码块和静态变量的执行顺序只跟代码中出现的顺序有关。
    2. 执行子类的静态代码块和静态变量初始化。
    3. 执行父类的实例变量初始化和普通代码块,,并且代码块和实例变量的执行顺序只跟代码中出现的顺序有关。
    4. 执行父类的构造函数
    5. 执行子类的实例变量初始化和普通代码块,,并且代码块和实例变量的执行顺序只跟代码中出现的顺序有关。
    6. 执行子类的构造函数

    若类已经加载

    则静态代码块和静态变量就不用重复执行,再创建类对象时,只执行与实例相关的变量初始化和构造

    package com.huangxin.test;
    
    
    
    public class CodeExeOrder {
    
        public static void main(String[] args) {
            B b=new B();
            System.out.println("-----");
            //类已经加载不在执行,则静态代码块和静态变量就不用重复执行,
            //再创建类对象时,只执行与实例相关的变量初始化和构造方法 
            A a=new B();
            
        }
    
    }
    class A {
        //静态代码块
        static {
            System.out.println("父类的静态代码块");
        }
        //代码块
         {
            System.out.println("父类的代码块");
            
        }
    
        public A() {
            System.out.println("父类的构造方法");
        }
    }
    class B extends A{
        //静态代码块
        static {
            System.out.println("子类的静态代码块");
        }
        
        //代码块
         {
            System.out.println("子类的代码块");
        }
        public B() {
            System.out.println("子类的构造方法");
        }
    }
    
    
    image.png

    参考链接:https://blog.csdn.net/u011877584/article/details/82145301?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

    相关文章

      网友评论

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

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