jvm|JVM——类加载机制( 二 )
6.通过 ClassLoader 默认的 loadClass 方法 , 也不会触发初始化动作 。
类加载器虚拟机设计团队把加载动作放到 JVM 外部实现 , 以便让应用程序决定如何获取所需的类 , JVM 提供了3种类加载器:
启动类加载器(Bootstrap ClassLoader)负责加载 JAVA_HOME\\lib 目录中的 , 或通过-Xbootclasspath 参数指定路径中的 , 且被虚拟机认可(按文件 名识别 , 如 rt.jar)的类 。
扩展类加载器(Extension ClassLoader)负责加载 JAVA_HOME\\lib\\ext 目录中的 , 或通过 java.ext.dirs 系统变量指定路径中的类 库 。
应用程序类加载器(Application ClassLoader)负责加载用户路径(classpath)上的类库 。JVM 通过双亲委派模型进行类的加载 , 当然我们也可以通过继承 java.lang.ClassLoader 实现自定义的类加载器 。
双亲委派当一个类收到了类加载请求 , 他首先不会尝试自己去加载这个类 , 而是把这个请求委派给父类去完成 , 每一个层次类加载器都是如此 , 因此所有的加载请求都应该传送到启动类加载其中 , 只有当父类加载器反馈自己无法完成这个请求的时候(在它的加载路径下没有找到所需加载的 Class) , 子类加载器才会尝试自己去加载 。
采用双亲委派的一个好处是比如加载位于 rt.jar 包中的类 java.lang.Object , 不管是哪个加载器加载这个类 , 最终都是委托给顶层的启动类加载器进行加载 , 这样就保证了使用不同的类加载器最终得到的都是同样一个 Object 对象 。
感谢诸君的观看 , 文中如有纰漏 , 欢迎在评论区来交流 。 如果这篇文章帮助到了你 , 欢迎点赞\uD83D\uDC4D关注 。
- |强劲送风,满足你对美感的挑剔—洛斐有范S桌面风扇
- 你甩不掉的伴侣——AEROPEXAS800初体验
- jvm|红米Note11T Pro的性价比真的有那么高吗?
- 趋势雷达|行业流行力——《新锐美妆种草看点》
- 社交平台cookie出卖了你——木马FFdroider欲窃取你的账户信息丨大东话安全
- 电子商务|广州蓝景分享 — 给刚入职前端\大佬\们的一些建议
- 开源软件|嵌入式开发:技巧和窍门——引导加载程序跳转到应用程序代码
- 三星|三星 S22 Ultra——硬件上的机皇,系统体验两极分化
- 天津航空——打造主题飞机 为智能大会插上“双翼”
- 支付宝|嵌入式开发:嵌入式基础——重启和重置的区别
