【发布时间】:2015-04-10 00:10:08
【问题描述】:
我的代码如下所示:
boolean[] array = new boolean[200];
int[] indexes = {10, 42, 62, 74};
while(true) {
//some code here
StringBuilder sb = new StringBuilder();
for (int j : indexes) {
sb.append(array[j] ? '1' : '0');
}
}
为此的字节码:
ASTORE 3 //"indexes" array
...
ALOAD 3
ASTORE 8
ALOAD 8
ARRAYLENGTH
...
我不确定为什么 javac 将 ref 复制到另一个本地变量中。
【问题讨论】:
-
这个字节码的哪一部分 "copy ref to array into another local var" ?
-
@Jean-FrançoisSavard
ALOAD 3后跟ASTORE 8。