Configuração igual em Java: por valor ou referência?
Eu fiz dois testes, o primeiro começando comStrings
String str1 = "old";
String str2 = str1;
str1 = "new";
System.out.println(str1); //new
System.out.println(str2); //old
O exemplo acima indica questr2 = str1, by value
Agora eu faço operações semelhantes, mas desta vez comLists
List<Integer> list1 = new ArrayList<Integer>();
List<Integer> list2 = list1;
list1.add(1);
System.out.println(list1.size()); //1
System.out.println(list2.size()); //1
Este exemplo indica quelist2 = list1, by reference
Estou confuso,which Java variables/objects
são passados porvalue
e que são passados porreference
?