类加载器

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

类加载器:
有三种  1:BootStrap(非java类,伴随java虚拟机一起启动) 管辖范围:JRE/lib/rt.jar (常用的类都存在这个jar包中)
2:ExtClassLoader(java类)管辖范围:JRE/lib/ext/*.jar 
3:AppClassLoader(java类)管辖范围:CLASSPATH指定的所有jar或目录。
这三个类加载器关系 BootStrap--->ExtClassLoader--->AppClassLoader 都是继承关系。 

有三种  1:BootStrap(非java类,伴随java虚拟机一起启动) 管辖范围:JRE/lib/rt.jar (常用的类都存在这个jar包中)
2:ExtClassLoader(java类)管辖范围:JRE/lib/ext/*.jar 
3:AppClassLoader(java类)管辖范围:CLASSPATH指定的所有jar或目录。
这三个类加载器关系 BootStrap--->ExtClassLoader--->AppClassLoader 都是继承关系。 

类的加载顺序是 先找父类然后依次找子类,直到当前的类加载器为止。

类加载器的委托机制,如果A类引用了B类,java虚拟机将使用A类的加载器来加载B类。每个类加载器加载是又会委托其上级类加载器加载,当所有祖宗类都没加载到这个类,回到发起着的类加载器,如果没有找到就会抛异常。
有个问题:A类(ClassPath下的类) B类(JRE/lib/ext/ 下的类) C类(ClassPath下的类)。A类包含B类,B类包含C类,当加载A类时,因为A类引用了B类,就会用A类的AppClassLoader加载器加载B类,因委托机制,加载B类就会使用ExtClassLoader类加载器,因B类引用了C类,B类的加载器就会向上找加载器,没有找到,回到发起者的B类加载器,B类加载器也没中到,就会报异常错误。

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------详细请查看: http://edu.csdn.net
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值