var a int[1];
var aa int[1];
aa = a;
假设我们要在Java jvm中编译类似的内容。可能有人会做
ldc 1
newarray int
astore 0
ldc 1
newarray int
astore 1
aload 0
istore 1
但是,这不起作用,它会抛出(class: test, method: main signature: ()V) Expecting to find integer on stack
数组aload
到局部变量中吗?
答案 0 :(得分:2)
这是引起问题的istore
指令。在Virtual Machine Specification中,它定义为
将int存储到局部变量中
您正在尝试存储数组引用,因此astore
是正确的指令类型,就像您在newarray
指令之后所做的一样。