类装载器

一、java虚拟机使用每个类的第一件事就是将该类的字节码装载进来,转载字节码的功能是由类装载器完成的,类装载器负责根据一个类的名称为定位和生成类的字节码数据后返回给java虚拟机
   最多见的装载器,是将.class中的内容,转换成java虚拟器的编码java

二、类装载器自己也是一个java类,java虚拟机也容许开发人员编写本身的类装载器,以便经过其余各类特殊方式来产生类字节码编码

三、无论类装载器采用什么方式,只要可以在内存中制造出给java虚拟机调用的类字节码便可,因此,把类装载器描述为类字节码的制造器更容易让人理解线程

四、当一个类被加载后,java虚拟机将其编译为可执行代码存储在内存中,并将索引信息存储进一个HashTable中,其索引关键字为与之相对应的类名对象

五、java程序中的类自己也是一种事物,它也能够用一个java类描述,这个特殊的类名就叫class。类装载器装载某个类的字节码的过程,实际上就是在建立class类的一个实力对象,这class类的实例对象封装的内容正好是当前加载类的字节码数据索引

 类名.class System.class
 对象的.getClass()  New Date().getClass()
 Class.foName("类名")内存

java虚拟机中内嵌了一个称为Bootstrap的类装载器,它属于java虚拟机的内核,不用类装载器装载。bootStrap类装载器负责加载java核心包中的类(即rt.jar文件中的类),是全部类加载器的顶点,这些类的class.getClassLoader方法返回值为null,即表示是BootStrap累装载器开发

ExtClassLoader类加载器:jar
AppClassLoader类加载器:启动类get


线程中的类加载器:Thread.setContextClassLoader()方法设置线程的上下文类装载器虚拟机

相关文章
相关标签/搜索