0
我正在準備自己的Java認證,並在這種情況下與對象引用混淆。 在這段代碼中,我無法理解爲什麼當我們爲它們分配一個新對象時,ArrayList和數組的元素不會受到影響?與對象引用相混淆
ArrayList<StringBuilder> myArrList = new ArrayList<StringBuilder>();
StringBuilder sb1 = new StringBuilder("Jan");
StringBuilder sb2 = new StringBuilder("Feb");
myArrList.add(sb1);
myArrList.add(sb2);
StringBuilder[] array = myArrList.toArray(new StringBuilder[2]);
for(StringBuilder val : array) {
System.out.println(val);
}
StringBuilder sb3 = new StringBuilder("NNN");
sb2 = sb3;
for(StringBuilder val : array) {
System.out.println(val);
}
for(StringBuilder val : myArrList) {
System.out.println(val);
}
輸出:
Jan
Feb
Jan
Feb
Jan
Feb
我會很感激,如果你能提供簡單的解釋。謝謝。
閱讀本文http://stackoverflow.com/questions/40480/is-java-pass-by-reference – Christian