Klarstellung der Java-String-Erstellung: Wiederholung von „String s = new String("silly")"
In Java die Erstellung von String-Objekten ist ein Thema, das oft Fragen aufwirft. Eine dieser Fragen betrifft den Unterschied in der Verwendung zwischen String und anderen Klassen bei der Zuweisung von Literalen.
Warum ist „CaseInsensitiveString cis = new CaseInsensitiveString("Polish")" richtig?
Die Aussage „CaseInsensitiveString cis = new CaseInsensitiveString(“Polish“)“ ist tatsächlich richtig, da String eine eindeutige Klasse in Java ist. Dieses Verhalten gilt nicht für andere Klassen wie CaseInsensitiveString.
Das besondere Verhalten von String verstehen:
Im Gegensatz zu anderen Klassen verfügt String über bestimmte inhärente Eigenschaften, die dieses einzigartige Verhalten ermöglichen :
So veranlassen Sie, dass sich CaseInsensitiveString wie ein String verhält:
Damit sich CaseInsensitiveString hier wie ein String verhält Diesbezüglich müssten Sie den Konstruktor überschreiben und das übergebene String-Literal manuell in den String-Pool integrieren. Dies würde Zugriff auf den internen String-Pool der JVM erfordern und könnte zu Leistungsproblemen führen, wenn es nicht sorgfältig durchgeführt wird.
Fazit:
Zusammenfassend ist String eine einzigartige Klasse in Java, das eine vereinfachte Initialisierung mit Literalen ermöglicht. Andere Klassen wie CaseInsensitiveString weisen dieses Verhalten nicht auf und erfordern eine explizite Konstruktion mit ihren richtigen Konstruktoren.
Das obige ist der detaillierte Inhalt vonWarum kann ich „new CaseInsensitiveString('Polish')' nicht wie „new String('silly')` verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!