Java的classloader

classloder的做用

.class文件-->类装载器-->执行引擎-->本地方法-->操做系统java

  • class文件能够来自网络服务器等途径,来源比较有可定制性。好比zip文件,网络,甚至运行时动态生成的class

java类装载的委托模型

自定义装载器-->应用类装载器(用户程序的classpath)-->扩展类装载器-->启动类装载器数组

  • 老是把类装载请求发给上一层,若是上层没有,再看本身有没有。
  • 类文件和类装载器惟一肯定一个类(即类装载器运行时的命名空间)
  • defineClass方法
    传递给这个方法一个合法的字节数组,就能够转化成class对象

类加载

加载-->链接-->初始化服务器

加载:经过类的全限定名找到类的二进制流。方法区生成该类表明的数据结构。内存生成该类的对象,做为方法区各类数据结构的外部接口网络

链接里有3步数据结构

  1. 验证 对格式,元数据,字节码,符号引用进行验证
  2. 准备 将类的静态变量进行内存分配和赋初值
  3. 解析 将类中的符号引用转化为直接引用

初始化
调用类的clinit构造器方法spa

相关文章
相关标签/搜索