java 类加载器

  一开始学java的时候,类加载器看了点但是稀里糊涂的,之后在项目中几乎没使用到类加载器。还是在看开源项目的源码的时候

总是会看到ClassLoader的身影。

  java中如果要使用某个类,则需要先把这个类加载到内存中方可使用,也就是使用ClassLoader把字节码加载到内存中

  java默认有三类加载器:

  1、系统类加载器(sun.misc.Launcher$AppClassLoader):

    这类加载器负责加载系统属性(java.class.path)下的路径

      system.getProperty("java.class.path");

      D:workspace-stshadoop argetclasses;C:Usersibm.m2 epositoryorgapachehadoophadoop-client2.6.0hadoop-client-2.6.0.jar...

    它有一个父类加载器,这种父类不是通过继承关系,而是引用的关系。它就是扩展类加载器

  2、扩展类加载器(sun.misc.Launcher$ExtClassLoader):

  3、启动类加载器(BootStrapClassLoader):

    这部分使用C写的,随着jvm的启动而启动

原文地址:https://www.cnblogs.com/zhengqun/p/5179377.html