Wird sich diese Änderung in der ArrayList widerspiegeln?
Ja, da Sie einen Verweis auf das Objekt in der Liste hinzugefügt haben . Die von Ihnen hinzugefügte Referenz verweist weiterhin auf dasselbe Objekt (das Sie geändert haben).
oder wenn ich das Objekt zur ArrayList hinzufüge, erstellt Java eine Kopie und fügt sie der ArrayList hinzu?
Nein, das Objekt wird nicht kopiert. (Der Verweis auf das Objekt wird kopiert.)
Was passiert, wenn ich den Verweis auf dieses Objekt auf null ändere? Bedeutet das, dass das Objekt in der ArrayList jetzt auch null ist?
Nein, da der Inhalt der ursprünglichen Referenz beim Hinzufügen zur Liste kopiert wurde . (Denken Sie daran, dass die Referenz kopiert wird, nicht das Objekt.)
Demonstration:
StringBuffer sb = new StringBuffer("foo");
List<StringBuffer> list = new ArrayList<StringBuffer>();
list.add(sb);
System.out.println(list);
sb.append("bar");
System.out.println(list);
sb = null;
System.out.println(list);