19.类加载机制

  1. 什么是类加载机制
    1. JVM在执行class文件时所做的一系列工作
    2. 包括内容有
      1. 装载:通过类的完全限定名,找到class文件,然后导入jvm中,并创建需要的Class对象
      2. 链接
        1) 验证:验证class文件的完整安全(因为class是可以被修改的,可能会对JVM产生威胁)
        2) 准备:为类的静态成员分配内存空间,设计初始化默认值(如,int a默认值是0)
        3) 解析:将符号引用转换为直接引用
      3. 初始化:真开始执行类中定义的JAVA程序代码:对类的静态变量,静态代码块执行初始化操作(如,程序中int a初始值是3,此时就会把3赋值给a)
      4. 说明
        1) :反射就是把java类中各个成分映射成一个个Java对象,在类装载时完成
        2) 装载工作是由类加载器完成的
        1. Bootstrap ClassLoader 根类加载器
        也被称为引导类加载器,负责Java 核心类的加载
        比如System,String 等。在JDK 中JRE 的lib 目录下rt.jar 文件中
        2. Extension ClassLoader 扩展类加载器
        负责JRE 的扩展目录中jar 包的加载
        在JDK 中JRE 的lib 目录下ext 目录
        3. Sysetm ClassLoader 系统类加载器
        负责在JVM 启动时加载来自java 命令的class 文件,以及classpath环境变量所指定的jar 包和类路径
        3) class文件在jvm中的生命周期(总共七个)
        1. 类加载机制的5个过程
        2. 使用
        3. 卸载
        4) 类加载时机(什么时候JVM开始执行某个类的加载呢?)
        1. 创建类的实例
        1. 使用new关键字创建实例
        2. 通过反射创建实例
        2. 访问类的静态变量,或者为静态变量赋值
        3. 调用类的静态方法
        4. 使用反射方式来强制创建某个类或接口对应的java.lang.Class 对象
        5. 初始化某个类的子类,初始化子类的时候,该子类的所有父类都会被初始化
        1. 当程序主动使用任何一个类时,系统会保证该类以及所有的父类都会被初始化
        6. 直接使用java.exe 命令来运行某个主类
      5. 图解
        1)
  2. 类加载机制的作用
    1. 为了:JVM执行class文件(jvm运行java程序)
  3. 类加载机制的使用
    1. 我们只需要了解这一过程即可
    2. 它是由JVM自动完成

猜你喜欢

转载自www.cnblogs.com/River111/p/9716602.html