java虚拟机(十)---类加载器介绍

java虚拟机(十)—类加载器介绍

  1. jvm支持两种类加载器,引导类加载器(Bootstrap ClassLoader)和自定义类加载器(User-Defined ClassLoader)。
  2. 从概念上讲,自定义加载器一般是指开发人员自定义的一类加载器,但是java虚拟机规范却没有这么定义,而是将所有派生于抽象类ClassLoader的类加载器都划分为自定义类加载器。
    在这里插入图片描述
    上图中,Bootstrap Class Loader 为引导类加载器,其他的都为自定义类加载器。
    这里的四者的关系是包含关系,不是上层下层,也不是父子继承关系。
    也可以从编写语言来分类,Bootstrap Class Loader是使用c和c++来编写,其他的是使用java语言编写。
  3. 类加载器初识
public class testsss {

    public static void main(String[] args) {
        //获取系统类加载器
        ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
        System.out.println(systemClassLoader);//sun.misc.Launcher$AppClassLoader@18b4aac2

        //获取其上层,扩展类加载器
        ClassLoader extClassLoader = systemClassLoader.getParent();
        System.out.println(extClassLoader);//sun.misc.Launcher$ExtClassLoader@119d7047

        //试图获取引导类加载器
        ClassLoader bootstrapClassLoader = extClassLoader.getParent();
        System.out.println(bootstrapClassLoader);//null

        //对于用户自定义类的加载器  ==> 使用系统类加载器加载
        ClassLoader classLoader = testsss.class.getClassLoader();
        System.out.println(classLoader);//sun.misc.Launcher$AppClassLoader@18b4aac2

        //String类是使用引导类加载器加载, java的核心类库都是使用引导类加载器加载
        ClassLoader classLoader1 = String.class.getClassLoader();
        System.out.println(classLoader1);//null

    }
}

》》》博主长期更新学习心得,推荐点赞关注!!!
》》》若有错误之处,请在评论区留言,谢谢!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值