✅ Перевірена відповідь на це питання доступна нижче. Наші рішення, перевірені спільнотою, допомагають краще зрозуміти матеріал.
String-Objekte sind immutable , d.h. man kann sie nicht ändern. Wenn nun versucht wird, ein String-Objekt zu ändern, wird stattdessen ein komplett neues String-Objekt mit dem geänderten Inhalt erstellt. Wird nun im Testprogramm für eine Karte ein anderes Symbol verwendet, dann passieren folgende 2 Schritte:
Es wird im String-Pool nachgesehen, ob dieser String des neuen Symbols (z.B. Herz) schon vorhanden ist.
Wenn es vorhanden ist, dann bekommt die Karte statt einem neuen Symbol eine Referenz auf das bestehende Symbol
Wenn das Symbol noch nicht vorhanden ist, wird automatisch ein komplett neues String-Objekt mit dem neuen Symbolnamen erstellt und dessen Referenz für die Karte verwendet
Das String-Objekt mit dem ursprünglichen Symbol bleibt unverändert bestehen. Wenn die Zeile
hand1.getKarte(0).setFarbe("Herz");zum vorherigen Test-Code hinzugefügt wird, verändert dies das zuletzt gezeigte Speicherbild folgendermaßen:
Damit bleibt die Farbe der 1. Karte in der 2. Kartenhand unbeeinflusst.