Java类加载机制

发布时间:2019-11-18 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java类加载机制脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_406_1@类加载过程

1、加载

2、验证

3、准备

4、解析

5、初始化

双亲委派模型

从Java虚拟机的角度来讲,只存在两种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用c++语言实现,是虚拟机自身的一部分;另一种就是所有其他的类加载器,这些类加载器都由Java语言实现,独立于虚拟机外部,并且全部都继承自抽象类java.lang.ClassLoader

双亲委派模型
1、启动类加载器(Bootstrap ClassLoader):这个类加载器负责加载<JAVA_HOME>lib目录中的。

2、扩展类加载器(Extension ClassLoader):这个类加载器负责加载<JAVA_HOME>libext目录中的。

3、应用程序类加载器(Application ClassLoader):这个类加载器负责加载用户类路径上所指定的类库。

双亲委派模型的工作过程:

如果一个类加载器收到类加载请求,首先它不会自己尝试去加载这个类,而是把加载请求委派给父类加载器去完成,每一个层次的类加载器都是如此,无论哪一个类加载器请求加载最终都会委派给最顶层的启动类加载器进行加载。只有当父类加载器反馈自己无法完成加载时,子类才会尝试自己去加载。

这样有一个显而易见的好处就是Java类随着它的类加载器一起具备了一种有优先级的层次关系。例如java.lang.Object,它存放在rt.jar中,无论哪个类加载器进行加载最终都会委派给顶层启动类加载器进行加载,因此Object类在程序的各种类加载器中都是同一个类。

欢迎加入学习交流群569772982,大家一起学习交流。

脚本宝典总结

以上是脚本宝典为你收集整理的Java类加载机制全部内容,希望文章能够帮你解决Java类加载机制所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。