`

个人常用JVM指令---待补充

    博客分类:
  • JVM
JVM 
阅读更多

指令码                  助记符                                        说明

0X00                     nop                                              啥也不干吐舌头

0X01                     aconst_null                                  将null推送到栈顶

 

  • const系列------将简单的数值类型推送到栈顶

0x02                     iconst_m1                                 将int型-1推送至栈顶

0x03                     iconst_0                                 将int型0推送至栈顶

0x04                     iconst_1                                       将int型1推送至栈顶

0x05                     iconst_2                                 将int型2推送至栈顶

0x06                     iconst_3                                        将int型3推送至栈顶

0x07                    iconst_4                                  将int型4推送至栈顶

0x08                    iconst_5                                  将int型5推送至栈顶

0x09                    lconst_0                                  将long型0推送至栈顶

0x0a                    lconst_1                                  将long型1推送至栈顶

0x0b                    fconst_0                                         将float型0推送至栈顶

0x0c                    fconst_1                                  将float型1推送至栈顶

0x0d                    fconst_2                                   将float型2推送至栈顶

0x0e                   dconst_0                                  将double型0推送至栈顶

0x0f                   dconst_1                                    将double型1推送至栈顶

 

  • ldc系列----负责将数值常量或字符串常量推送到栈顶

0x12                    ldc                              将int, float或String型常量值从常量池中推送至栈顶

 

  • store系列---负责将栈顶的值存入本地变量

0x36                          istore                    将栈顶int型数值存入指定本地变量

0x37                         lstore                    将栈顶long型数值存入指定本地变量

0x38                          fstore                    将栈顶float型数值存入指定本地变量

0x39                          dstore                   将栈顶double型数值存入指定本地变量

0x3a                          astore                   将栈顶引用型数值存入指定本地变量

0x3b                          istore_0                将栈顶int型数值存入第一个本地变量

0x3c                          istore_1                将栈顶int型数值存入第二个本地变量

0x3d                          istore_2                将栈顶int型数值存入第三个本地变量

0x3e                          istore_3                将栈顶int型数值存入第四个本地变量

0x3f                           lstore_0                将栈顶long型数值存入第一个本地变量

0x40                          lstore_1                将栈顶long型数值存入第二个本地变量

0x41                          lstore_2                将栈顶long型数值存入第三个本地变量

0x42                          lstore_3                将栈顶long型数值存入第四个本地变量

0x43                          fstore_0                将栈顶float型数值存入第一个本地变量

0x44                          fstore_1                将栈顶float型数值存入第二个本地变量

0x45                          fstore_2                将栈顶float型数值存入第三个本地变量

0x46                          fstore_3                将栈顶float型数值存入第四个本地变量

0x47                          dstore_0               将栈顶double型数值存入第一个本地变量

0x48                          dstore_1               将栈顶double型数值存入第二个本地变量

0x49                          dstore_2               将栈顶double型数值存入第三个本地变量

0x4a                          dstore_3               将栈顶double型数值存入第四个本地变量

0x4b                          astore_0               将栈顶引用型数值存入第一个本地变量

0x4c                           astore_1               将栈顶引用型数值存入第二个本地变量

0x4d                           astore_2                将栈顶引用型数值存入第三个本地变量

0x4e                           astore_3                将栈顶引用型数值存入第四个本地变量

 

  • 域操作指令系列--------------用于对静态域或非静态域进行读写 该类指令需要跟一个标识域的编号

 

0xb2                           getstatic                    获取指定类的静态域,并将其值压入栈顶

0xb3                           putstatic                    用栈顶的值为指定的类的静态域赋值

0xb4                           getfield                      获取指定类的实例域,并将其值压入栈顶

0xb5                           putfield                       用栈顶的值为指定的类的实例域赋值

 

  • 方法操作指令系列------------------用于对静态方法以及非静态方法的调用 需要跟一个方法的编号

 

0xb6                            invokevirtual                              调用实例方法

0xb7                            invokespecial                            调用超类构造方法,实例初始化方法,私有方法

0xb8                            invokestatic                               调用静态方法

0xb9                            invokeinterface                          调用接口方法

 

  • new系列指令----------用于创建一个对象或数组

 

0xbb                            new                                            创建一个对象,并将其引用值压入栈顶

0xbc                            newarray                                    创建一个指定原始类型(如int, float, char…)的数组,并将其引用值压入栈顶

0xbd                            anewarray                                 创建一个引用型(如类,接口,数组)的数组,并将其引用值压入栈顶

0xbe                             arraylength                                获得数组的长度值并压入栈顶

 

  • 返回指令系列--------------用于从方法中返回

 

0xac                               ireturn                                        从当前方法返回int

0xad                               lreturn                                       从当前方法返回long

0xae                               freturn                                       从当前方法返回float

0xaf                                dreturn                                     从当前方法返回double

0xb0                               areturn                                     从当前方法返回对象引用

0xb1                               return                                       从当前方法返回void

 

分享到:
评论

相关推荐

    JVM图解-JVM指令-JVM原型图.rar

    在这个压缩包中,"JVM图解.png"可能是对JVM内部结构的可视化表示,"JVM图解"可能是一个详细的文档,解释了JVM的工作原理,而"JVM指令手册 中文版"则提供了JVM可执行的所有指令的详细信息。下面,我们将深入探讨JVM的...

    nginx-upstream-jvm-route-1.15

    【标题】"nginx-upstream-jvm-route-1.15" 涉及的核心知识点是Nginx的upstream模块与JVM路由的整合,特别针对Nginx 1.15版本。这个项目旨在解决在配置Nginx时遇到的特定错误提示“nginx: [emerg] invalid parameter ...

    深入JVM---JVM命令---invokespecial

    《深入JVM---JVM命令---invokespecial》 在Java虚拟机(JVM)的世界里,`invokespecial`指令扮演着至关重要的角色。它主要用于执行对象的构造方法(即`<init>`方法),以及调用私有方法和父类非静态方法。本文将...

    基于jvm-sandbox-repeater重新开发的一款流量回放平台产品

    Moonbox(月光宝盒)是一个无侵入的线上流量录制 和流量回放平台,沿用了jvm-sandbox-repeater的SPI设计,并提供了大量的常用插件,同时也提供数据统计和存储能力。通过Moonbox可以实现自动化测试、线上问题追踪、和...

    JVM基础-超清文字版.pdf

    **Java虚拟机(JVM)基础** Java虚拟机(JVM)是Java平台的核心组成部分,它是Java程序运行的引擎。JVM负责解析字节码,执行类文件,并为应用程序提供了一个跨平台的运行环境。本资料《JVM基础-超清文字版.pdf》将...

    bcprov-ext-jdk15on-1.54.jar、bcprov-jdk15on-1.54.jar和ssl-provider-jvm16-0.2.jar

    它提供了核心的加密服务,包括常用的加密算法实现,但相比扩展版可能不包含一些特定的、更高级的特性。 "ssl-provider-jvm16-0.2.jar"是一个针对JVM 1.6的SSL(Secure Socket Layer)提供者。SSL是一种网络通信安全...

    nginx-upstream-jvm-route 和 nginx 对应版本,亲测可用

    此资源有两个文件,含 nginx-upstream-jvm-route 和 nginx 对应版本,都是tar.gz文件。 安装方法网上很多就不写了,亲测可用。 不用担心版本不匹配造成安装失败,再浪费积分去到处下载尝试的烦恼。 此资源有两个文件...

    深入jvm内核-原理、诊断与优化教学视频

    1、java虚拟机的基本介绍。 2、字节码的执行 3、常用的jvm参数配置 4、算法和种类 5、gc参数配置 6、类加载器 7、性能监控工具 8、jvm堆栈分析

    metrics-jvm-3.1.5-API文档-中文版.zip

    赠送jar包:metrics-jvm-3.1.5.jar; 赠送原API文档:metrics-jvm-3.1.5-javadoc.jar; 赠送源代码:metrics-jvm-3.1.5-sources.jar; 赠送Maven依赖信息文件:metrics-jvm-3.1.5.pom; 包含翻译后的API文档:...

    kotlinx-coroutines-io-jvm-0.1.1.jar

    kotlinx-coroutines-io-jvm-0.1.1.jar

    metrics-jvm-3.1.5-API文档-中英对照版.zip

    赠送jar包:metrics-jvm-3.1.5.jar; 赠送原API文档:metrics-jvm-3.1.5-javadoc.jar; 赠送源代码:metrics-jvm-3.1.5-sources.jar; 赠送Maven依赖信息文件:metrics-jvm-3.1.5.pom; 包含翻译后的API文档:...

    ant-eclipse-jvm1.2-1.0.jar.zip

    《Ant与Eclipse集成:JVM1.2版本1.0的jar.zip包解析》 在软件开发领域,Ant和Eclipse是两个重要的工具。Ant是Apache软件基金会下的一个Java项目,它是一个基于XML的构建工具,常用于自动化Java项目的构建、测试和...

    JVM指令手册_jvm指令手册_

    `JVM指令手册`是深入理解JVM内部工作原理的重要参考资料,它详细列出了JVM所支持的所有操作指令,这对于Java开发者提升技能、进行性能优化以及排查问题具有极高的价值。以下是一些关键的JVM指令及相关的知识点: 1....

    中文版JVM指令手册.pdf

    ### JVM指令手册知识点 #### 概述 JVM(Java虚拟机)是执行Java字节码的虚拟机,其指令集是Java程序运行的基石。JVM指令手册是开发者理解和运用JVM指令的重要资料,其中详细介绍了各个指令的作用、参数以及应用场景...

    00-JVM指令手册.pdf

    标题《00-JVM指令手册》和描述“JVM指令手册.java代码经过javap-v可以查看java指令,配合指令手册可以查看详细操作过程”表明文档是一份关于Java虚拟机(JVM)指令的手册。这份手册将涉及JVM字节码指令,这些指令是Java...

    JVM指令集.zip

    JVM指令集是JVM的核心组成部分,它定义了JVM能够理解和执行的一系列低级操作指令。这些指令构成了Java程序在运行时的微观世界,对理解JVM的工作原理至关重要。下面我们将深入探讨JVM指令集及其重要性。 1. **JVM...

    JVM指令手册详细完整版.pdf

    "JVM指令手册详细完整版.pdf" 本资源是关于JVM指令的详细手册,涵盖了JVM指令的各种系列命令,包括未归类系列、const系列、push系列、ldc系列、load系列等。每个系列命令都有其特定的功能和用途,下面我们将逐一...

    JVM中文指令手册.pdf

    JVM(Java Virtual Machine,Java虚拟机)是运行所有Java程序的假想计算机,是Java程序的运行环境,负责执行指令、管理数据、内存、寄存器等,是实现Java跨平台特性的关键部分。JVM指令手册详细记录了JVM的所有操作...

    JVM学习-字节码指令集(三)代码

    JVM学习-字节码指令集(三)代码

Global site tag (gtag.js) - Google Analytics