Heim >Java >javaLernprogramm >Warum ist die String-Klasse in Java unveränderlich oder endgültig?

Warum ist die String-Klasse in Java unveränderlich oder endgültig?

WBOY
WBOYnach vorne
2023-08-20 22:05:091024Durchsuche

Warum ist die String-Klasse in Java unveränderlich oder endgültig?

Die Zeichenfolge ist unveränderlich, was bedeutet, dass wir das Objekt selbst nicht ändern können, aber wir können den Verweis auf das Objekt ändern. Die Zeichenfolge ist endgültig, damit andere sie nicht erweitern und ihre Unveränderlichkeit zerstören können könnten leicht geändert werden.

  • Synchronisation und Parallelität Durch die automatische Unveränderlichkeit von Strings werden diese Thread-sicher und dadurch die Synchronisierungsprobleme gelöst.
  • Caching Wenn der Compiler unsere String-Objekte optimiert, scheint es, dass, wenn zwei Objekte denselben Wert haben (a ="test" und b="test") und daher benötigen wir nur ein String-Objekt (für a und b zeigen diese beiden auf dasselbe Objekt).
  • Klassenladen String wird als Argumente für die Klasse verwendet Laden. Wenn sie veränderlich ist, könnte dies dazu führen, dass die falsche Klasse geladen wird (da veränderbare Objekte ihren Zustand ändern).
  • Beispiel:
    public class StringImmutableDemo {
       public static void main(String[] args) {
          String st1 = "Tutorials";
          String st2 = "Point";
          System.out.println("The hascode of st1 = " + st1.hashCode());
          System.out.println("The hascode of st2 = " + st2.hashCode());
          st1 = st1 + st2;
          System.out.println("The Hashcode after st1 is changed : "+ st1.hashCode());
       }
    }
    输出:
  • The hascode of st1 = -594386763
    The hascode of st2 = 77292912
    The Hashcode after st1 is changed : 962735579

Das obige ist der detaillierte Inhalt vonWarum ist die String-Klasse in Java unveränderlich oder endgültig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen