类加载器: 用来加载java类到java虚拟机中. 

 

  java.lang.classLoader根据一个指定类名称,找到或生成对应的字节码,从中定义出一个JAVA类。 还负责加载JAVA应用锁需要的资源.

  常用方法: 

      getParent() : 返回其父类加载器

      loadClass(String name) 加载name类

      findClass(String name) 查找name类

      findLoadedClass(String name)查找已被加载过的name类

      defineClass(String name,byte[] b,int off,int len) 将数组b中内容转换成java类

      resolveClass(Class<?> c) 链接到java类

 

双亲委托机制:

      一个加载器收到通知,先纵向向上,让其父类进行加载,成功则返回True,不成功则自身加载, 未加载到抛出异常.   目的是防止恶意覆盖

 

类加载器分类:     

     根加载器: bootStrap class loader , 用于加载核心api, 比如java_home/lib.   native方法 不可访问

     扩展加载器: extensions class loader ,加载标准类库,是根加载器的子类,jdk/lib/etc, 可人为操纵

     程序加载器: system class loader , 用于加载常用类和编译类, java_classpath 是扩展加载器的子类,可操控

     自定义:  需要继承classLoader

      类加载器classLoader

相关文章: