Porque o valor de referencia não é passado para o valor interno do ArrayList, já que String é um objeto em java? Vi que tem uam questao parecida, mas aqui estou mudando a referencia que é passada para o ArrayList, nao o valor retornado
ArrayList<String> lista = new ArrayList<String>();
String referencia = "alura";
lista.add(referencia);
String interno = lista.get(0);
referencia = "caelum";
System.out.println(interno); // alura
System.out.println(referencia); // caelum
System.out.println(lista.get(0)); // alura