ClassLoader深入分析

ClassLoader深入分析

ClassLoader在平时业务开发中很少会使用到,但在框架代码中出现频率是非常高的。理解ClassLoader的实现以及使用方式能更好地学习优秀的代码,所以本文试图去分析ClassLoader。
ClassLoader,顾名思义就是类加载器,负责将class文件加载到jvm中;同时还有一个重要作用是决定每个类由谁加载。本文的内容包括其加载机制、加载过程和使用方法。

ClassLoader简介

ClassLoader的加载机制是上级委托加载机制。下面将举例说明,任何一个class到达时,当前的CL会判断是否已经加载过,则拒绝此次加载;如果没有加载过则会去询问上级CL,上级会根据加载机制判断,如果已经加载过,同样的处理方式,通知下级,如果没加载过则会依次反复。
JVM平台提供了三级CL,分为两种,一种是加载CL的,一种是则是普通的加载class文件的。Bootstrap ClassLoader是第一类;AppClassLoader则是第二类。其实还有一种CL,ExClassLoader有点特殊,介于两者之间。

ClassLoader加载过程

ClassLoader的使用

  1. 通过ClassLoader中的forName方法
  2. 通过类ClassLoader的loaderClass方法

你可能感兴趣的:(Java,JAVA)