码迷,mamicode.com
首页 > 其他好文 > 详细

深入理解JVM(7)——类加载器

时间:2019-03-31 18:12:36      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:对象   意义   过程   ade   直接   接口   载器   dcl   请求   

一、类和类加载器

a)        类加载器的作用:将class文件加载到JVM的方法区,并且在方法区中创建一个java.lang.Class对象作为外界访问这个类的接口。

b)        类和类加载器的关系:比较两个类是否相等,只有当这两个类由同一个类加载器加载才有意义;否则,即使同一个class文件被不同的类加载器加载,这两个类必定不相同。

二、类加载器的种类:

a)        启动类加载器

b)        扩展类加载器

c)        应用程序类加载器

三、双亲委派模型

a)        工作过程:如果一个类加载器收到一个类的加载请求,它首先将请求交由父类加载器进行加载,如果父类加载器加载失败,当前的类加载器才自己加载这个类,但无论那个类加载器加载这个类,最后都会返回一个关于该类的Class对象。

b)        作用:像java.lang.Object这些存放在Java基础类库中的类,无论使用哪个类加载器加载,最终都会委派给最顶端的启动类加载器加载,从而使得不同加载器加载的Object类都是同一个。

c)        双亲委派模型的实现原理:双亲委派模型的代码在java.lang.ClassLoader类中的loadClass函数中实现:

  1. 首先检查类是否被加载
  2. 若类未被加载,则调用父类加载器的loadClass方法;
  3. 若父类加载器的loadClass方法出现ClassNotFoundException异常,则表示父类加载器无法加载,则当前类加载器调用findClass加载类;
  4. 若父类加载器可以加载,则直接返回Class对象

深入理解JVM(7)——类加载器

标签:对象   意义   过程   ade   直接   接口   载器   dcl   请求   

原文地址:https://www.cnblogs.com/BaoZiY/p/10632226.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!