类加载器
简介:
Java需要将类加载到jvm里面的字节码里面去,类加载器则进行的是这样的工作。类加载器实行的是双亲委托类加载机制即一层一层向上委托,如果父级没有找到再由自己进行加载
分类:
-
启动类加载器(bootstrapclassloader)
类加载器中的顶级加载器,由c++实现,只加Java核心包,负责
<JAVA_HOME>/lib
路径下的核心类库或-Xbootclasspath
参数指定的路径下的jar包加载到内存中 -
拓展类加载器(extclassloader)
父加载器为null,实际是bootstrapclassloader(由于bootstrapclassloader由c++实现 所以体现为null)
负责加载
<JAVA_HOME>/lib/ext
目录下或者由系统变量-Djava.ext.dir指定位路径中的类库,开发者可以直接使用标准扩展类加载器 -
系统类加载器(appclassloader)
系统的默认加载器ClassLoader.getSystemClassLoader(),父加载器为拓展类加载器(extclassloader)
负责加载系统类路径
java -classpath
或-D java.class.path
指定路径下的类库,也就是我们经常用到的classpath路径 -
自定义加载器
父加载器是系统类加载器(appclassloader)
注:个人笔记