对象的创建指令
指令名称 | 描述 |
---|---|
new | 创建一个对象,并将其引用值压人栈顶 |
newarray | 创建一个指定原始类型(如int,float,char等)的数组,并将其引用值压人栈顶 |
anewarray | 创建一个引用型(如类、接口、数组)的数组,并将其引用值压如栈顶 |
multianewarray | 创建指定类型和指定维度的多维数组(执行该指令时,操作栈中必须包含各维度的长度值),并将其引用值压入栈顶 |
对象操作指令
类变量(static字段)和实例变量的操作指令
指令名称 | 描述 |
---|---|
getfield | 获取指定类的实例字段,并将其值压人栈顶 |
putfield | 为指定类的实例字段赋值 |
getstatic | 获取指定类的静态字段,并将其值压人栈顶 |
putstatic | 为指定类的静态字段赋值 |
加载数组元素到操作数栈
指令名称 | 描述 |
---|---|
baload | 将boolean或byte类型数组的指定元素加载到栈顶 |
caload | 将char类型数组的指定元素加载到栈顶 |
saload | 将short类型数组的指定元素加载到栈顶 |
iaload | 将int类型数组的指定元素加载到栈顶 |
laload | 将long类型数组的指定元素加载到栈顶 |
faload | 将float类型数组的指定元素加载到栈顶 |
daload | 将double类型数组的指定元素加载到栈顶 |
aaload | 将引用类型数组的指定元素加载到栈顶 |
存储操作数栈的值数组元素中
指令名称 | 描述 |
---|---|
bastore | 将栈顶boolean或byte类型数值存入指定数组的指定索引位置 |
castore | 将栈顶char类型数值存入指定数组的指定索引位置 |
sastore | 将栈顶short类型数值存入指定数组的指定索引位置 |
iastore | 将栈顶int类型数值存入指定数组的指定索引位置 |
lastore | 将栈顶long类型数值存入指定数组的指定索引位置 |
fastore | 将栈顶flaot类型数值存入指定数组的指定索引位置 |
dastore | 将栈顶double类型数值存入指定数组的指定索引位置 |
aastore | 将栈顶引用类型数值存入指定数组的指定索引位置 |
取数组长度
指令名称 | 描述 |
---|---|
arraylength | 获取数组的长度值并压入栈顶 |
检查类实例或数组类型的指令
指令名称 | 描述 |
---|---|
instanceof | 检验对象是否是指定类的实例,如果是,就将1压入栈顶,否则将0压入栈顶 |
checkcast | 检验类型转换,检验为通过将抛出ClassCastException |
java虚拟机规范(Java SE 8版)