java 类加载器
一开始学java的时候,类加载器看了点但是稀里糊涂的,之后在项目中几乎没使用到类加载器。还是在看开源项目的源码的时候
总是会看到ClassLoader的身影。
java中如果要使用某个类,则需要先把这个类加载到内存中方可使用,也就是使用ClassLoader把字节码加载到内存中
java默认有三类加载器:
1、系统类加载器(sun.misc.Launcher$AppClassLoader):
这类加载器负责加载系统属性(java.class.path)下的路径
system.getProperty("java.class.path");
D:\workspace-sts\hadoop\target\classes;C:\Users\ibm\.m2\repository\org\apache\hadoop\hadoop-client\2.6.0\hadoop-client-2.6.0.jar...
它有一个父类加载器,这种父类不是通过继承关系,而是引用的关系。它就是扩展类加载器
2、扩展类加载器(sun.misc.Launcher$ExtClassLoader):
3、启动类加载器(BootStrapClassLoader):
这部分使用C写的,随着jvm的启动而启动