• 【JAVA】java中类的执行顺序


    一、根据程序写输出结果,考察执行顺序
    class Student {
    static {
    System.out.println("Student 静态代码块");
    }
     
    {
    System.out.println("Student 构造代码块");
    }
     
    public Student() {
    System.out.println("Student 构造方法");
    }
    }
     
    class StudentTest {
    static {
    System.out.println("StudentTest静态代码块");
    }
     
    public static void main(String[] args) {
    System.out.println("我是main方法");
     
    Student s1 = new Student();
    Student s2 = new Student();
    }
    }
    测试结果:
    StudentTest静态代码块
    我是main方法
    Student 静态代码块
    Student 构造代码块
    Student 构造方法
    Student 构造代码块
    Student 构造方法
    

    分析:

    ​ main方法是Java程序的入口,JVM先找main方法;
     先把有main方法的类加载到内存中,此时StudentTest类的静态代码块直接随着类的加载而先执行;
    ​ 随后main方法开始执行,当Student类被实例化后,Student类的静态代码块先执行,并且只执行一次,不管实例化多少对象;
    ​ 之后,每实例化一次Student类,类中的构造代码块比构造方法就会先执行,并且每实例化一次就执行一次。
    ### 只要是加载该类,静态代码块直接随着类的加载而先执行;###
     
    二、类成员加载顺序
    静态块(静态变量)——>成员变量——>构造代码块——>构造方法——>调用静态方法 

    end. 


  • 相关阅读:
    力扣算法题—091解码
    力扣算法题—090子集2
    力扣算法题—089格雷编码
    力扣算法题—088合并两个有序数组
    HDU 1509 Windows Message Queue
    HDU 1241 Oil Deposits
    HDU 1096 A+B for Input-Output Practice (VIII)
    HDU 1108 最小公倍数
    HDU 1106 排序
    HDU 1003 Max Sum * 最长递增子序列(求序列累加最大值)
  • 原文地址:https://www.cnblogs.com/coder-ydq/p/13613718.html
Copyright © 2020-2023  润新知