Я готовлюсь к сертификации 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