JAVA JVM助记符】的更多相关文章

ldc:将int/float/String类型的常量值从常量池中推送至栈顶(栈顶的值是即将要用的) bipush:将单字节(-128 ~ 127)的常量值从常量池中推至栈顶 sipush:将一个短整型(-32768 ~ 32767)的常量值从常量池中推至栈顶 iconst_1:将int型的常量值1从常量池中推至栈顶(jvm专门为0/1/2/3/4/5这5个数字开的助记符),iconst_m1则表示的是-1 anewarray:创建一个引用类型(如类.接口.数组)的数组,并将其引用值推至栈顶 ne…
说明,本文的目的在于从宏观逻辑上介绍清楚绝大多数的字节码指令的含义以及分类 只要认真阅读本文必然能够对字节码指令集有所了解 如果需要了解清楚每一个指令的具体详尽用法,请参阅虚拟机规范 指令简介 计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程. 通常一条指令包括两方面的内容: 操作码和操作数,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址. 虚拟机的字节码指令亦是如此含义 class文件相当于JVM的机器语言 cla…
JVM指令集(指令码.助记符.功能描述) 指令码 助记符 功能描述 0x00 nop 无操作 0x01 aconst_null 指令格式:  aconst_null 功能描述:  null进栈. 指令执行前 指令执行后 栈底 ... ... null 栈顶 注意:JVM并没有为null指派一个具体的值. 0x02 iconst_m1 int型常量值-1进栈 0x03 iconst_0 int型常量值0进栈 0x04 iconst_1 int型常量值1进栈 0x05 iconst_2 int型常量…
JVM指令集(指令码.助记符.功能描述) 指令码 助记符 功能描述 0x00 nop 无操作 0x01 aconst_null 指令格式:  aconst_null 功能描述:  null进栈. 指令执行前 指令执行后 栈底 ... ... null 栈顶 注意:JVM并没有为null指派一个具体的值. 0x02 iconst_m1 int型常量值-1进栈 0x03 iconst_0 int型常量值0进栈 0x04 iconst_1 int型常量值1进栈 0x05 iconst_2 int型常量…
以下只是JVM指令助记符,关于JVM指令的详细内容请阅读<JVM指令详解> 变量到操作数栈:iload,iload_,lload,lload_,fload,fload_,dload,dload_,aload,aload_ 操作数栈到变量:istore,istore_,lstore,lstore_,fstore,fstore_,dstore,dstore_,astore,astore_ 常数到操作数栈:bipush,sipush,ldc,ldc_w,ldc2_w,aconst_null,icon…
1.定义一个常量 public class MyTest2 { public static void main(String[] args) { System.out.println(MyParent2.str); } } class MyParent2{ public static final String str = "hello world"; static { System.out.println("MyParent2 static block"); } }…
本文转载自Java SE7 虚拟机指令操作码助记符 导语 在Class文件中,Java方法里的方法体,也就是代表着一个Java源码程序中程序的部分存储在方法表集合的Code属性中.存储在Code属性中的是字节码,也就是编译后的程序.Java虚拟机的指令由两部分组成,首先是一个字节长度.代表某种含义的数字(即操作码),在操作码后面跟着零个或多个代表这个操作所需的参数(即操作数).由于Java虚拟机采用的是面向操作数栈而不是寄存器的架构,所以大多数指令不包含操作数,只有一个操作码. 操作码的长度只有…
一.JVM指令助记符 1)操作数栈 变量到操作数栈:iload,iload_,lload,lload_,fload,fload_,dload,dload_,aload,aload_ 操作数栈到变量:istore,istore_,lstore,lstore_,fstore,fstore_,dstore,dstor_,astore,astore_ 常数到操作数栈:bipush,sipush,ldc,ldc_w,ldc2_w,aconst_null,iconst_ml,iconst_,lconst_,…
反编译指令 javap -c xxxx.class JVM参数设置 -xx:+<option>                  开启option -xx: -<option>                     关闭option选项 -xx:<option>=<value>        设置选项的值 0xB2                getstatic                 获取指定的静态域,并将其值压入栈顶 0xB3       …
整理如下,用于以后查找: Opcode Mnemonics Note Constants 0x00 nop 无动作 0x01 aconst_null 把 null 推到操作数栈 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 推到操作数栈…