详解 JVM 字节码 (1)

作者: zidea | 来源:发表于2019-05-03 18:11 被阅读13次

在开始分析 class 字节码前我们先补一补一些基础知识,帮助我们更好地了解 jvm 是如何执行字节码的。大家可能都知道 JVM 是操作栈,

CLR常用简写词语,CLR是公共语言运行库(Common Language Runtime)和Java 虚拟机一样也是一个运行时环境,它负责资源管理(内存管理和垃圾收集等),并保证应用和底层操作系统之间必要的分离。CLR存在两种不同的翻译名称:公共语言运行库和公共语言运行时。

栈虚拟机

  • 操作数栈持有操作数
  • 操作数可以入栈或出栈进行操作
  • 栈的大小是由每一个方法显式确定的
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("hello world");
    }
}

这里我们写一个简单的 HelloWorld 代码,执行效果是在控制台输出 hello world

执行顺序
我们用查看字节码工具来看一下,main 方法执行那些指令将我们 hello world 进行输出,这里大家只是简单了解就行,随后给大家分享如何查看和分析字节码。
操作符执行栈
  • 首先将 System.out.Print 压入栈
  • 然后将字符串“hello world ” 入栈
  • invokevitual 调用将调用 print 命令将 hello world 进行输出。

基本操作

基本操作符

这些操作完成对栈进行操作。JVM 是一个基于栈的虚拟机。

相关文章

  • JVM

    JVM 基础-类字节码详解 多语言编译为字节码在 JVM 运行 Java 字节码文件-- Class文件的结构属性...

  • 详解 JVM 字节码 (1)

    在开始分析 class 字节码前我们先补一补一些基础知识,帮助我们更好地了解 jvm 是如何执行字节码的。大家可能...

  • JVM知识精粹

    1.jvm执行字节码文件 流程:jvm通过类加载器加载字节码文件----字节码校验器---翻译字节码(解释执行,反...

  • Java并发机制的底层原理

    Java程序执行:Java代码→Java字节码→字节码被类加载器加载到JVM里,JVM执行字节码→转化为汇编指令在...

  • Java并发机制的底层实现原理

        Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为...

  • 详解 JVM 字节码(3)

    版本信息 上一次我们分析前 4 个字节为魔数,继续向下数 4 字节为版本号信息(前两个字节表示此版本号,后两个字节...

  • 详解 JVM 字节码(2)

    什么是字节码,为什么需要字节码编译 JVM 编译成机器码, 我们看一看 Java 编译过程 java 源码 编译为...

  • 详解 JVM 字节码(Four)

    访问标志 访问标志信息包括该 Class 文件是类还是接口,是否被定义成 public,是否是 abstract,...

  • 详解 JVM 字节码(8)

    字节码的执行方式,程序执行有两种是编译执行和解释执行,JIT 编译产生本地代码生成机器码来执行。现在的 JVM 解...

  • 详解 JVM 字节码(5)

    今天进入最关键也是最重要部分方法表,也是有一定难度。 定义方法访问标记00 01 :表示一个 public 方法,...

网友评论

    本文标题:详解 JVM 字节码 (1)

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