字节码指令 对象创建与访问指令

对象创建指令用于创建新的对象并将其压入操作数栈。访问指令用于访问对象的属性或数组元素。

以下是一些常见的对象创建指令:

new:创建一个新对象,并将其引用压入栈顶。
anewarray:创建一个指定类型的数组,并将其引用压入栈顶。
multianewarray:创建一个多维数组,并将其引用压入栈顶。
以下是一些常见的对象访问指令:

getfield:获取对象的实例变量的值,并将其压入操作数栈。
putfield:设置对象的实例变量的值。
getstatic:获取一个静态变量的值,并将其压入操作数栈。
putstatic:设置一个静态变量的值。

以下是一些示例:

// 创建一个新对象
new java/lang/Object

// 创建一个大小为 10 的 int 数组
bipush 10
newarray int

// 创建一个大小为 10x20 的 int 数组
bipush 10
bipush 20
multianewarray [I 2

// 获取 obj 对象的属性值,存储到栈顶
aload_1
getfield MyClass.obj Ljava/lang/Object;

// 设置 obj 对象的属性值
aload_1
aload_2
putfield MyClass.obj Ljava/lang/Object;

// 获取 MyClass 类的静态属性值
getstatic MyClass.count I

// 设置 MyClass 类的静态属性值
bipush 10
putstatic MyClass.count I

这些指令用于在字节码中实现面向对象的编程。