jvm介绍 day3

2020-01-16  本文已影响0人  小明同学呀呀呀
image.png

类的加载

类的初始化规则

/**
 * @author NingXioaoming
 * @createTime 2019/12/12 15:13
 * @description
 */

/*
        一个父接口并不会因为它的子接口或者实现类的初始化而初始化,
        只有当程序首次使用特定接口的静态变量时,才会导致该接口的初始化

 */
public class MyTest5 {
    public static void main(String[] args) {
        System.out.println(MyChild5.bb);
/*        new c();
        new c();*/
    }
}

interface MyParent5{
    String bb = UUID.randomUUID().toString();
//    static int c = 1/0;
    static int a = 4;
    Thread t = new Thread(){
        {
            System.out.println("MyParent5 run");
        }
    };
}

class MyChild5 implements MyParent5{
    public static final String bbc = UUID.randomUUID().toString();
    public static final int b= 5;  //默认为 static和final的
}

class c{
    public c(){//第三执行
        System.out.println("无参构造 run");
    }
    {//第二执行
        System.out.println("nihao");
    }
    static {//先执行
        System.out.println("static 块 run");
    }
}

类加载器

1. 双亲(父亲,爷爷)委托加载类机制
image.png
image.png

由下往上进行加载 只要有一个类加载器加载成功,就加载成功了, 下面加载不成功 则给上面的双亲让双亲进行加载。

上一篇 下一篇

猜你喜欢

热点阅读