zoukankan      html  css  js  c++  java
  • JVM 学习笔记 类的加载和执行

    一、类的加载器

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

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

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

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

    2、用户定义加载器

          java.lang.ClassLoader的子类

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

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

    二、类的验证

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

    类验证内容:

    1、类文件结构验证

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

    2、语义检查

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

    3、字节码验证

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

    4、二进制兼容验证

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

    三、类的装备

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

    四、类的解析

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

    五、类的初始化

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

  • 相关阅读:
    如何检测死锁并快速定位死锁位置
    几种线程本地存储变量和普通变量的性能比较
    multi_index_container性能测试
    [高并发引擎]定时器模块
    [高并发引擎]Log模块
    静态博客教程 1:hexo + github
    蛇形填数
    实现简单的 ls 命令
    静态库与动态库的创建和使用
    用两个栈实现队列
  • 原文地址:https://www.cnblogs.com/sodmecai/p/2486374.html
Copyright © 2011-2022 走看看