类加载过程

过程:

  1. 加载
    二进制文件加载到内存
  2. 验证
    验证类文件是否正确,是否符合jvm规范
  3. 准备
    静态变量进行初始化,分配内存空间并赋予初始值
  4. 解析
    符号引用转为直接引用,加载引用的类
  5. 初始化
    对类进行初始化,对静态变量进行赋值,执行静态代码块
  6. 使用
  7. 卸载

确定一个唯一的类:

  1. 类全限定名
  2. 类加载器

为什么要自定义?

  1. 从非标准位置加载类。如数据库、网络上。
  2. 加密。对class文件进行加密存储,需要解密后加载到内存。
  3. 隔离。利用不同classLoader加载。例如tomcat
  4. 动态加载类。热部署。

双亲委派优点?

  1. 安全机制。防止核心类库被篡改。
  2. 防止类重复加载。

打破双亲委派?
tomcat打破双亲委派。目的隔离war包。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容