Heim > Java > javaLernprogramm > Einführung in die Gründe für die Unveränderlichkeit von String

Einführung in die Gründe für die Unveränderlichkeit von String

不言
Freigeben: 2019-03-23 11:17:11
nach vorne
2900 Leute haben es durchsucht

Der Inhalt dieses Artikels ist eine Einführung in die Gründe für die Unveränderlichkeit von String. Ich hoffe, dass er für Freunde in Not hilfreich ist.

Im Interview bei Maoyan fragte der Interviewer, warum String-Strings unverändert seien. Meine damalige Antwort war, dass die String-Klasse mit dem Schlüsselwort final geändert wurde. Auf die Frage, warum sie unveränderlich sei, wenn sie mit dem Schlüsselwort final geändert wurde, stellte ich fest, dass das, was ich sagte, keinen Sinn ergab. Dann habe ich konkret nachgeschaut, warum.

Die Invarianz von String, wie in der folgenden Abbildung gezeigt, zeigt beim Ändern von s auf ein neues Objekt und das ursprüngliche Objekt ändert sich nicht.

Einführung in die Gründe für die Unveränderlichkeit von String

Schauen Sie sich an, wie der Quellcode implementiert ist:

Einführung in die Gründe für die Unveränderlichkeit von String

Wir sehen, dass String als final definiert ist, also String Es ist nicht vererbbar. Dann sehen wir, dass die interne Implementierung von String ein char-Array ist und als final definiert ist. Zu diesem Zeitpunkt denken einige Leute vielleicht, dass das endgültig geänderte Feld nach der Erstellung nicht mehr geändert werden kann, also ist es vorbei, aber das ist nicht der Fall.

Denn obwohl der Wert unveränderlich ist, ist nur die Referenzadresse des Werts unveränderlich. Das Array-Array, auf das es sich bezieht, ist jedoch veränderbar.

final int[] value={1,2,3};
value[2]=100;  //这时候数组里已经是{1,2,100}
Nach dem Login kopieren

Der Grund, warum String unveränderlich ist, liegt im Grunde darin, dass die Sun-Ingenieure das Wertearray sehr gut gekapselt haben und das Wertearray nicht in allen Methoden ändern, es als privat definieren und den gesamten String-Satz erstellen Es ist endgültig, die Vererbung zu verbieten, um zu verhindern, dass es von anderen Personen, die es erben, zerstört wird. Der Schlüssel zur Unveränderlichkeit von String liegt also nicht in der Rolle des Finales.

Gleichzeitig haben Java-Autoren einen String-Konstantenpool

String one = "someString";
String two = "someString";
Nach dem Login kopieren

Einführung in die Gründe für die Unveränderlichkeit von String

Dieser Artikel ist hier. Weitere spannende Inhalte finden Sie in der Spalte

Java Video Tutorial auf der chinesischen PHP-Website!

Das obige ist der detaillierte Inhalt vonEinführung in die Gründe für die Unveränderlichkeit von String. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage