logo

Unveränderlicher String in Java

Ein String ist ein unvermeidbarer Variablentyp beim Schreiben eines Anwendungsprogramms. String-Referenzen werden zum Speichern verschiedener Attribute wie Benutzername, Passwort usw. verwendet. In Java String-Objekte sind unveränderlich . Unveränderlich bedeutet einfach unveränderlich oder unveränderlich.

Schriftgröße Latex

Sobald ein String-Objekt erstellt wurde, können seine Daten oder sein Status nicht mehr geändert werden, es wird jedoch ein neues String-Objekt erstellt.

Versuchen wir, das Konzept der Unveränderlichkeit anhand des folgenden Beispiels zu verstehen:

Testimmutablestring.java

 class Testimmutablestring{ public static void main(String args[]){ String s='Sachin'; s.concat(' Tendulkar');//concat() method appends the string at the end System.out.println(s);//will print Sachin because strings are immutable objects } } 
Testen Sie es jetzt

Ausgabe:

 Sachin 

Nun kann es anhand des untenstehenden Diagramms verstanden werden. Hier wird Sachin nicht verändert, sondern mit Sachin Tendulkar ein neues Objekt geschaffen. Aus diesem Grund wird String als unveränderlich bezeichnet.

Unveränderlicher String in Java

Wie Sie in der obigen Abbildung sehen können, werden jedoch zwei Objekte erstellt S Die Referenzvariable bezieht sich immer noch auf „Sachin“, nicht auf „Sachin Tendulkar“.

Wenn wir es jedoch explizit der Referenzvariablen zuweisen, verweist es auf das Objekt „Sachin Tendulkar“.

Zum Beispiel:

Testimmutablestring1.java

 class Testimmutablestring1{ public static void main(String args[]){ String s='Sachin'; s=s.concat(' Tendulkar'); System.out.println(s); } } 
Testen Sie es jetzt

Ausgabe:

 Sachin Tendulkar 

In einem solchen Fall weist s auf den „Sachin Tendulkar“ hin. Bitte beachten Sie, dass das Sachin-Objekt weiterhin nicht verändert wird.

upcasting

Warum sind String-Objekte in Java unveränderlich?

Da Java das Konzept des String-Literals verwendet. Angenommen, es gibt 5 Referenzvariablen, die sich alle auf ein Objekt „Sachin“ beziehen. Wenn eine Referenzvariable den Wert des Objekts ändert, wird er von allen Referenzvariablen beeinflusst. Aus diesem Grund sind String-Objekte in Java unveränderlich.

Python speichert JSON in einer Datei

Im Folgenden sind einige Funktionen von String aufgeführt, die String-Objekte unveränderlich machen.

1. ClassLoader:

Ein ClassLoader in Java verwendet ein String-Objekt als Argument. Bedenken Sie, dass, wenn das String-Objekt änderbar ist, der Wert möglicherweise geändert wird und die Klasse, die geladen werden soll, möglicherweise eine andere ist.

Um diese Art von Fehlinterpretation zu vermeiden, ist String unveränderlich.

2. Thread-sicher:

Da das String-Objekt unveränderlich ist, müssen wir uns nicht um die erforderliche Synchronisierung kümmern, wenn ein Objekt über mehrere Threads hinweg gemeinsam genutzt wird.

arraylist.sort

3. Sicherheit:

Wie wir beim Laden von Klassen gesehen haben, vermeiden unveränderliche String-Objekte weitere Fehler, indem sie die richtige Klasse laden. Dies führt dazu, dass das Anwendungsprogramm sicherer wird. Betrachten Sie ein Beispiel einer Banksoftware. Der Benutzername und das Passwort können von keinem Eindringling geändert werden, da String-Objekte unveränderlich sind. Dadurch kann das Anwendungsprogramm sicherer gemacht werden.

4. Heap-Speicherplatz:

Die Unveränderlichkeit von String trägt dazu bei, die Nutzung im Heap-Speicher zu minimieren. Wenn wir versuchen, ein neues String-Objekt zu deklarieren, prüft die JVM, ob der Wert bereits im String-Pool vorhanden ist oder nicht. Wenn es existiert, wird dem neuen Objekt derselbe Wert zugewiesen. Mit dieser Funktion kann Java den Heap-Speicherplatz effizient nutzen.

Warum ist die String-Klasse in Java Final?

Der Grund dafür, dass die String-Klasse endgültig ist, liegt darin, dass niemand die Methoden der String-Klasse überschreiben kann. Damit es sowohl den neuen als auch den alten String-Objekten dieselben Funktionen bieten kann.