类加载器

jvm有三个重要的内置加载器,分别是:BootstrapClassLoader、ExtensionClassLoader、AppClassLoader,除BootstrapClassLoader外均由java实现且继承java.lang.Classloader类:

  • BootstrapClassLoader:启动类加载器,最顶层的类加载器,由c++实现,负责加载%JAVA_HOME%/lib目录下的jar包和类以及-Xbootclasspath参数指定路径下的所有类。
  • ExtensionClassLoader:扩展类加载器,负责加载%JRE_HOME%/lib/ext目录下的jar包和类,或被 java.ext.dirs 系统变量所指定的路径下的jar包。
  • AppClassLoader:应用程序类加载器,面向用户程序的类加载器,负责加在classpath路径下的所有的jar包和类。

双亲委派模型
       每一个类都对用有自己的类加载器,系统中的类加载器在协同工作的时候会默认使用双亲委派模型。即每一个类都默认使用其父类的类加载器。当父类加载器为null时,会使用BootstrapClassLoader来进行类加载。
       双亲委派模型可以避免类重复加载,保证程序的稳定运行,因为同一个类文件被不同的加载器加加载生成的是两个不同的类。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值