首页 > 代码库 > JVM常用指令

JVM常用指令

invokevirtual 调用实例方法
invokespecial 调用父类构造,实例初始化方法,私有方法
dup 复制栈顶数值,并且复制值进栈,pop/pop2为栈顶值出栈
aload_0 加载第一个(0)局部变量引用的对象。  简单的理解是将地址入栈。给局部变量赋值。
iload_0第一个int型局部变量进栈 iaload指定的int型数组的指定下标值进栈
istore_0 将栈顶int值存入局部变量 iastore将栈顶int值存入指定数组下标
bi/sipush byte/short常量栈顶 ldc等是常量池推送栈顶
iconst_m1-5 常量值-1到5进栈  aconst_null   null进栈
getstatic 获取静态域,并将其值压入栈顶。 field 实例域
putstatic 为指定静态域赋值。

iinc 对int变量增加指定值。this
局部变量又叫本地变量。

JVM通过类加载器(Class Loader)加类java应用,通过API执行。
JVM本身就是一个用于执行Java字节码的执行器。开发者通过java语言编译生成JVM能理解的二进制字节码。与操作系统无关。二进制文件很难被直观的理解其中的指令,为了管理这些class文件JVM提供了javap命令对二进制文件进行反编译。执行javap得到的是直观的指令序列。

java字节码指令集包含操作码和操作数。

java代码执行过程
.java文件通过javac命令编译生成.class字节码文件 Class Loader类加载器把字节码载入到运行时数据区,执行引擎负责java字节码的执行。

java提供了动态加载类的特性,只有在运行时第一次遇见类时加载和连接。 JVM的类加载器负责类的动态加载过程。


JVM常用指令