zoukankan      html  css  js  c++  java
  • 【JVM】把Class加载到内存要几步

    大纲

    • class文件如何load到内存
      • 类加载器
      • 双亲委派
        • 缓存&找不到返回null
          • 多次加载class还是同一个
        • Tomcat打破双亲委派
          • 自己加载自己的class,不委托上级的类加载器 - 加载web应用
        • SPI打破双亲委派
          • 上级加载器委托下级的类加载器去加载class - jdbc
      • 实现自己的类加载器
        • 重写findClass方法 可以加载指定路径的class文件
          • 加密class
        • 重写loadClass方法 可以打破双亲委派机制
          • 热部署
            • 不去委托父类加载,每次自己再加载一次
    • 创建一个class对象放在堆空间
    • 配合反射使用
      • 动态创建类或者修改属性
    • 何时发生类加载
      • 未规定
    • linking
      • verification
      • preparation
      • resolution - 将符号引用解析成直接引用
        • 在class编译时期并不能知道引用的对象在内存中的地址,所以只能暂时用特定的符号表示
    • initializing  
      • 一个面试题理解static加载有顺序
  • 相关阅读:
    springboot整合log4j2
    document解析html
    关于字符串读写乱码的解决方法浅谈
    BOM知识整理
    es6的Map()构造函数
    es6的Set()构造函数
    关于node的path模块
    java总结(方法与对象)
    webpack3.0+总结
    java总结(二)(运算符)
  • 原文地址:https://www.cnblogs.com/nightOfStreet/p/13301873.html
Copyright © 2011-2022 走看看