• JVM 学习笔记 类的加载和执行


    一、类的加载器

    1、JAVA虚拟机自带的加载器

          根类加载器(C++实现的,程序员无法再JAVA代码中获得)

          扩展类加载器,使用JAVA代码实现

         系统类加载器(应用加载器),使用JAVA代码实现

    2、用户定义加载器

          java.lang.ClassLoader的子类

         用户可以定制类的加载方式

    类加载器不需要等到某个类被“首次使用”才加载。JVM规范允许类加载器在可预知某个类被使用的时候预先加载它,如果类.class文件缺失,类加载器在程序首次使用该类的时候才报告错误(LinkageError错误)

    二、类的验证

    类加载后,就进入链接阶段。连接就是将已经读入内存的类的二进制数据合并到虚拟机的运行时环境中。

    类验证内容:

    1、类文件结构验证

    确保类文件遵从JAVA类文件的固定格式

    2、语义检查

    符合类本身符合JAVA语言的语法规定。

    3、字节码验证

    确保字节码可以被JVM安全的执行。

    4、二进制兼容验证

    确保相互引用的类之间协调一致。

    三、类的装备

    装备阶段,JVM为类的静态变量分配内存,并且赋值给初始值。

    四、类的解析

    将符号引用转换成指针引用(直接指针,可以理解为C语言中的指针)。

    五、类的初始化

    执行类的初始化语句。按照语句的顺序来执行。

  • 相关阅读:
    分区表的一些操作例子
    MySQL 主从复制
    使用pipeline的函数
    主键字段使用不同数据类型的简单比较
    Flashback Query笔记
    基于Liquibase的数据库持续集成
    MySQL安装
    格式化SYS_GUID()成为标准格式
    Silverlight Treeview 相关操作:加载,保存,索引节点,节点移动,模板节点
    Silverlight TreeView组件的研究[2]
  • 原文地址:https://www.cnblogs.com/sodmecai/p/2486374.html
Copyright © 2020-2023  润新知