1.初识JVM

JVM的概念

  • JVM是Java Virtual Machine的简称。意为Java虚拟机。
  • JVM使用软件模拟Java字节码的指令集。

规范

java语言规范

  • 语法
    if-else-else if、函数等语法
  • 词法
    行终结符、空白符、注释、标识符、关键字等
  • java内存模型
  • 类加载连接过程
  • 异常
  • ...

JVM规范

JVM主要定义二进制class文件和JVM指令集等。Java语言和JVM相对独立,Groovy、Clojure、Scala等也可以运行在JVM中。

  • Class文件格式
  • 数字的内部表示和存储
    Byte  -128 to 127 (-27 to 27 - 1)
  • returnAddress数据类型定义
    指向操作码的指针。不对应Java数据类型,不能在运行时修改。Finally实现需要
  • 定义PC、堆、栈、方法区
  • 整数、浮点数的表示与定义
  • 特殊的方法
    • <clinit>
    • <init>
  • VM指令集
    • 类型转化
      l2i
    • 出栈入栈操作
      aload astore
    • 运算
      iadd isub
    • 流程控制
      ifeq ifne
    • 函数调用
      invokevirtual invokeinterface invokespecial invokestatic
  • JVM需要对Java Library 提供以下支持
    • 反射 java.lang.reflect
    • ClassLoader
    • 初始化class和interface
    • 安全相关 java.security
    • 多线程
    • 弱引用
  • JVM的编译
    • 源码到JVM指令的对应格式
    • Javap
    • JVM反汇编的格式
      (index) (opcode) [ (operand1) [ (operand2)... ]] [(comment)]

猜你喜欢

转载自www.cnblogs.com/lee2guang/p/12520579.html