JVM类加载器分类

 

JVM中的类的加载器主要有三种:启动类加载器,拓展类加载器,应用类加载器。

     启动类加载器(Bootstrap classLoader):又称为引导类加载器,由C++编写,无法通过程序得到。主要负责加载JAVA中的                                                                       一些核心类库,主要是位于<JAVA_HOME>/lib/rt.jar中。

     拓展类加载器(Extension classLoader):主要加载JAVA中的一些拓展类,位于<JAVA_HOME>/lib/ext中,是启动类加载器                                                                       的子类。

     应用类加载器(System classLoader):    又称为系统类加载器,主要用于加载CLASSPATH路径下我们自己写的类,是拓展类                                                                       加载器的子类。
 

1.Object类是由哪个类加载器加载的?

      BootStrap ClassLoader

    2.我们自己写的类是由哪个类加载器加载的?

     System ClassLoader

   3.类加载器都是我们Java中的一个类ClassLoader的子类吗?

    BootStrap ClassLoader不是的,另外两个是的。

类加载器的三大特性:委托性、可见性、单一性

委托性:每个类中都有一个自己的类加载器的属性,这也就是为什么可以通过Student.class.getClassLoader()来    获取自己的类加载器。当一个类加载器要加载一个类时,它会先委托自己的父类加载器来加载,只有当父加载器无法加载类时,才会自己去加载。例如我们写了一个类Student,它的类加载器是System ClassLoader,它首先会委托给它的父加载器即Extension ClassLoader,然后Extension ClassLoader又会委托给它的父加载器BootStrap ClassLoader,启动类加载器无法加载这个类,交给拓展类加载器,拓展类加载器也无法加载,然后才轮到系统类加载器进行加载。

可见性:可见性指的是父加载器无法利用子加载器加载的类,而子加载器可以利用父加载器加载的类。

单一性:一个类只会被一个类加载器加载一次,不会被重复加载。

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值