Java类总结

类结构

属性+属性表

字节码

跨平台的本质:语言无关的字节码。

类加载

分类

  1. 启动类加载器:C++
  2. 其他类加载器:基于ClassLoader
    1. 扩展类加载器:如加密
    2. 应用类加加载器
      1. 自定义加载器

类加载流程

加载,连接(验证,准备,解析),初始化,使用,卸载。

  • 加载

获取字节流
转化为方法区运行结构
在内存中生成class对象:hotspot 放在方法区

  • 验证

文件格式验证:符合Class文件规范
元数据验证:对类信息进行语义校验
字节码验证:方法体和指令验证
符号引用验证:外部匹配性校验

  • 准备

为类变量分配内存和初始化(static字段)

  • 解析

将符号引用替换为直接引用的过程,包括:类、字段、方法。
符号引用:任何描述引用目标的一组符号。
直接引用:直接指向目标的指针、句柄等。

  • 构造

初始化

双亲委派模型

先交给父类加载,防止子类重复加载。

Comments
Write a Comment