JVM类加载器

Posted androidsuperman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM类加载器相关的知识,希望对你有一定的参考价值。

加载器从最底层开始往上的顺序

  1. BootStrap ClassLoader:rt.jar,C++实现,虚拟机的一部分
  2. Extention ClassLoader: 加载扩展的jar包
  3. App ClassLoader:指定的classpath下面的jar包
  4. Custom ClassLoader:自定义的类加载器

双亲委派机制

类收到了加载请求时,它是不会先自己去尝试加载的,而是委派给父类去完成,只有当父类加载器都反馈自己无法完成这个请求(也就是父类加载器都没有找到加载所需的Class)时,子类加载器才会自行尝试加载。

这样做的好处是,加载位于rt.jar包中的类时不管是哪个加载器加载,最终都会委托到BootStrap ClassLoader进行加载,这样保证了使用不同的类加载器得到的都是同一个结果。这也是一个隔离的作用,避免了我们的代码影响了JDK的代码。

以上是关于JVM类加载器的主要内容,如果未能解决你的问题,请参考以下文章

JVM学习记录-类加载器

JVM类加载

JVM快速入门

JVM探究之 —— 类加载器-双亲委派模型

JVM -- 类加载器;双亲委派机制;线程上下文类加载器

JVM -- 类加载器;双亲委派机制;线程上下文类加载器