? Die Entwickler von Java entwarf die "String" -Klasse als unveränderliches Objekt . " Unveränderlichen " bedeutet, dass der Wert der Klasse kann nicht ändern, wenn der Programmierer instanziiert das Objekt. Während es scheint vorteilhaft für immer ein String -Objekt, das einen veränderbaren Wert hat , erklären ein paar Gründe, warum dies nicht der Fall ist . Immutable Saiten eignen sich in multi-threaded Programme verwenden , erhöhen Programm Sicherheit, minimieren Speichernutzung, und arbeiten besser als Werte in Datenstrukturen wie HashTables . Strings in Multi -Threaded Programme
Programme werden als multi-threaded , wenn sie laichen , was als " Themen ", die Code ausführen gleichzeitig bekannt. Wenn ein Programm mehrere Threads laicht , diese Themen oft auf die gleichen Variablen zu unterschiedlichen Zeiten arbeiten . Die Gefahr ist , wenn zwei Threads eine Variable zu teilen, und ein Thread seinen Wert ändert , während die zweite noch nutzt. A " Locking" Mechanismus typischerweise bewacht Variablen in Threading Situationen . Mit einem unveränderlichen String jedoch ist ein Thread nicht besorgt mit dem Wert der Variablen.
Sicherheit
Die Unveränderlichkeit von Zeichenfolgen hilft auch bei bestimmten Sicherheitsbedenken. Wenn ein Benutzer Anmeldeinformationen eingibt auf einer Website , ist es theoretisch möglich, dass er den Wert der Benutzername oder Passwort String geändert werden, bevor es auf das System gelangt . Wenn dies geschieht, dann kann dieser Benutzer schädlichen Code auf das System er oder sie in der Holzgewinnung wird injizieren. Da Zeichenfolgen unveränderlich sind , ist dies jedoch nicht möglich.
Minimieren Speicherbedarf
Wenn ein Programmierer erstellt ein String-Objekt , das Objekt befindet sich in einer festen Punkt in Erinnerung , und die Variable Name dient als " Referenz ". Da der Verweis auf das Gedächtnis und was der Speicher enthält zwei getrennte Dinge sind , bedeutet dies, dass andere Variablen-Namen können auch auf den gleichen Speicherplatz . Also, wenn Kopien eines Strings benötigt werden, verschiedene Variablen können die gleiche unveränderliche Zeichenfolge verweisen , und da es sich nicht ändern wird, haben keine Notwendigkeit, Kopien der gleichen Zeichenfolge zu erstellen.
Use in HashTable Datenstrukturen
HashTables sind sogenannten "Wörterbüchern ", weil sie Schlüsselwort-Wert- Paaren , um die Suche die Datenstruktur einfacher zu verwenden. Streicher in der Regel verweisen Wert (z. B. " Name " => " Robert " oder " Alter " => 25). Da Zeichenfolgen unveränderlich sind , hat ein Programmierer keine Gedanken über das Schlüsselwort mit einem Wert verändert sich, und verlieren den Zugang zu diesem Wert zu kümmern.