JAVA字节码指令集(对象的创建和操作)

本文详细介绍Java虚拟机中对象及数组的创建、操作指令,包括new、newarray、anewarray、multianewarray等创建指令,以及getfield、putfield、getstatic等变量操作指令,和baload、iaload、aaload等数组元素加载指令,阐述了Java对象与数组的底层实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对象的创建指令
指令名称描述
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版)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值