sat*_*ate 2 java arrays variables
以下代码生成此输出:
aaab - > aabb - > abbb - > bbbb
我的目标是让它看起来像这样:
aaab - > aaba - > abaa - > baaa
但我很难搞清楚为什么我会得到这个结果.
String abcd = 'abcd';
int l=3;
byte[] word=new byte[]{abcd[0],abcd[0],abcd[0],abcd[0]};
System.out.println(new String(word)); // print: aaaa
while (l >= 0) {
byte[] present=word; // !!!
present[l + 1 - (l - (--l))] = abcd[1];
System.out.println(new String(present)); // print: aaab -> aabb -> abbb -> bbbb
}
System.out.println(new String(word)); // print: bbbb
Run Code Online (Sandbox Code Playgroud)
如果我改变这一行(5): byte[] present=word;
至 byte[] present=new byte[]{abcd[0],abcd[0],abcd[0],abcd[0]};
然后我得到了所需的输出.为什么会这样?