美文网首页JVM学习记
JVM(一)类加载阶段分解

JVM(一)类加载阶段分解

作者: r09er | 来源:发表于2020-03-18 16:57 被阅读0次

类加载器深入解析与阶段分解

类加载阶段

  • 在Java代码中,类型加载,连接初始化过程都是在程序运行期间完成
  • 提供了更大的灵活性,增加了更多的可能性

加载

  • 将已存在的磁盘的类的class文件加载到内存中

连接

  • 对字节码的处理,验证,校验
  • 类与类之间的符号引用转为直接引用

初始化

  • 对于静态变量进行赋值

JVM规范对类加载的阶段进行了约束,但是具体情况需要根据运行时的JVM环境进行判断.

结束生命周期的情况

  • System.exit()
  • 程序正确执行结束
  • 执行过程中遇到了异常或者错误而终止
  • 由于操作系统出现错误而导致java虚拟机进程终止

类的加载,连接与初始化

加载

查找并加载类的二进制数据

连接

细分过程

  • 验证:确保必备加载的类正确性

    确保没有篡改,正确性

  • 准备:为类的静态变量分配内存,并将其初始化为默认值

    在准备阶段,并不会将具体值赋值给变量,在如下代码中,在准备阶段会将a初始化为默认值0

    class Test{
      public static int a = 1;
    }
    
  • 解析:把类的符号引用转为直接引用

    • 符号引用:可以理解为间接的方式引用,譬如一个类的方法引用的另一个类
    • 直接引用:直接将方法通过指针的方式指向目标对象的内存

初始化

为类的静态变量赋予正确的初始值

使用

程序正常使用类,平常打交道的阶段

卸载

从内存中卸载类,卸载之后就不能使用,但是也能重新加载到内存.例如OSGI

类加载流程图

类加载流程图 类加载的各个流程

类加载的最终产物

类的加载最终产物是位于内存中的Class对象
Class对象封装了类在方法区内的数据结构,并且向Java开发人员访问方法区内的数据结构的接口

相关文章

  • JVM(一)类加载阶段分解

    类加载器深入解析与阶段分解 类加载阶段 在Java代码中,类型的加载,连接与初始化过程都是在程序运行期间完成 提供...

  • JVM——类加载机制

    前言 今天就来介绍类的加载机制以及双亲委派机制。 JVM 类加载机制 JVM 类加载的五个阶段 JVM 类加载机制...

  • JVM类加载学习三-类加载器

    JVM类加载器 @(Java)[JVM|类加载器] 类加载过程中的加载阶段在JVM的外部实现。这样做可以让应用程序...

  • class初始化过程

    1. JVM 类加载机制分为五个部分:加载、验证、准备、解析、初始化 加载:加载时类加载过程中的一个阶段,这个阶段...

  • jvm类加载机制

    jvm类加载机制分为五个部分:加载、验证、准备、解析、初始化 加载 加载是类加载过程中的一个阶段,这个阶段会在内存...

  • 第四课、类加载器的深入解析与阶段分解

    类加载器的深入解析与阶段分解 类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一...

  • JVM类加载器与双亲委派模型

    JVM类加载器 JVM类加载器:在类加载阶段中实现“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作的代...

  • 类加载机制

    类的加载在JVM中有三个阶段:加载、链接、初始化,这三个阶段都在类加载子系统中完成 类加载器子系统负责加载本地或网...

  • JVM类加载学习二-类加载机制学习

    JVM类加载机制 @(Java)[JVM|类文件结构] [TOC] 基本介绍 JVM的类加载机制:JVM把描述类的...

  • Java类加载机制 双亲委托模式

    加载阶段 类加载阶段是由类加载器负责根据一个类的全名类读取此类的二进制字节流到JVM内部,并存储在运行时内存区的方...

网友评论

    本文标题:JVM(一)类加载阶段分解

    本文链接:https://www.haomeiwen.com/subject/widcyhtx.html