类加载器
类加载的作用:
将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后在堆中生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口
类缓存:
标准的JavaSE类加载器可以按要求查找类,但一旦某个类被加载到类加载器中,它将维持加载(缓存)一段时间。不过JVM垃圾回收机制可以回收那些Class对象
类加载器的分类
- 引导类加载器:用C++编写的,是JVM自带的类加载器,负责java平台核心库,用来装载核心类库。该类加载器是无法直接获取的
- 扩展类加载器:负责jre/lib/ext目录下的jar包或—D java.ext.dirs 指定目录下的jar包装入工作库
- 系统类加载器: 负责java—classpath 或—D java.class.path 所指的目录下的类与jar包装入工作,是最常用的加载器
继承关系:
系统类—父类—>扩展类—父类—>引导类(无法获取)