Jvm类加载机制

学习周志明的《深入理解Java虚拟机》的整理

Posted by Kent on November 27, 2018

Jvm类加载机制

类加载器

  • Bootstrap ClassLoader:启动类加载器,加载jre中的lib目录下的jar, 或者-Xbootclasspath参数指定的路径中的虚拟机识别的jar, 仅按照文件名识别,如果不是类库中的jar,即使放在该目录中,也不会被加载。

  • Extension ClassLoader:加载jre中的/lib/ext中的jar, 或者是java.ext.dirs系统变量所指定的路径中的所有类库。

  • Application ClassLoader:程序的默认加载器,用于加载用户类路径ClassPath上的类库。

双亲委派模型

先检查是否已经被加载过,若没有被加载则调用父加载器的loadClass()方法, 若父加载器为空,则默认使用启动类加载器作为父加载器。 如果父加载器加载失败,抛出ClassNotFoundException异常后, 再调用自己的findClass()方法进行加载。

思维导图