Warum können wir die nicht änderbare Liste ändern, wenn wir die ursprüngliche haben?

Beim Betrachten des Codes vonCollections Klasse, ich habe erfahren, dass, wenn wir die Methode verwendenunmodifiableList(List list) oderunmodifiableCollection(Collection c) Es wird kein neues Objekt erstellt, aber es wird die Referenz desselben Objekts zurückgegeben und die Methoden überschrieben, mit denen das @ geändert werden kanList [ add, addall, remove, retainAll ...]
So lief ich diesen Test:

List modifiableList = new ArrayList();
modifiableList.add ( 1 );   
List unmodifiableList = Collections.unmodifiableList( modifiableList );
// unmodifiableList.add(3);  // it will throw the exception 
modifiableList.add ( 2 );       
System.out.println( unmodifiableList );

Ergebnis ist[ 1,2 ] .
Jetzt ist der Punkt, warum es sich auf dasselbe Objekt bezieht? Warum wird kein neues Objekt erstellt?

Antworten auf die Frage(14)

Ihre Antwort auf die Frage