java类加载顺序

Posted tractors

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java类加载顺序相关的知识,希望对你有一定的参考价值。

1、java类加载顺序:
  (1) 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法) 
  (2) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 )
  (3) 父类非静态代码块( 包括非静态初始化块,非静态属性 )
  (4) 父类构造函数
  (5) 子类非静态代码块 ( 包括非静态初始化块,非静态属性 )
  (6) 子类构造函数
2、代码:
  父类:
public class Father 
    private String pro="1";
    private static String staticPro="2";

    
        System.out.println("父普通代码块");
        System.out.println(this.pro);
        System.out.println(this.staticPro);
    
    static 
        System.out.println("父静态代码块");
    

    public Father() 
        System.out.println("父类构造");
        System.out.println(this.pro);
        System.out.println(this.staticPro);
    

  子类:

public class Son extends Father 
    private String pro="1";
    private static String staticPro="2";
    
        System.out.println("子普通代码块");
        System.out.println(this.pro);
        System.out.println(this.staticPro);
    
    static 
        System.out.println("子静态代码块");
    

    public Son() 
        System.out.println("子类构造");
        System.out.println(this.pro);
        System.out.println(this.staticPro);
    

  测试:

public class test 
    public static void main(String[] args) 
        Son son = new Son();
    

  返回结果:

 技术图片

 

 

以上是关于java类加载顺序的主要内容,如果未能解决你的问题,请参考以下文章

Java类加载

java加载类的顺序

java类加载顺序

Java 的类加载顺序

Java类加载及实例化的调用顺序

《Java编程思想》学习01:普通类的初始化加载顺序分析