JVM类加载机制入门

java 运行类的入口是mian方法,主类在运行的时候加载其他的类,加载的时候,会优先加载父类.静态方法优先于构造方法先执行.
jar包或war包里的类不是一次性全部加载的,是使用到时才加载。

package com.bonc.jvm;

/**
 * @Classname TestDynamicLoad
 * @Description TODO
 * @Date 2020/6/14 11:05
 * @Created by sz
 */
public class TestDynamicLoad {

    static {
        System.out.println("**************加载静态代码块*************");
    }

    public static void main(String[] args) {
        new A();
        System.out.println("*************加载测试类************");
        B b=null;
    }

}

class A extends C{

    static {
        System.out.println("**************加载A的静态代码块*************");
    }
    public  A(){
        System.out.println("**************加载A的构造方法代码块*************");
    }

}
class B{

    static {
        System.out.println("**************加载B的静态代码块*************");
    }
    public  B(){
        System.out.println("**************加载B的构造方法代码块*************");
    }
}

class C{

    static {
        System.out.println("**************加载C的静态代码块*************");
    }
    public  C(){
        System.out.println("**************加载C的构造方法代码块*************");
    }
}

所以程序运行的结果为
代码运行结构

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章