Heim  >  Artikel  >  Java  >  Was ist eine String-Klasse in Java?

Was ist eine String-Klasse in Java?

(*-*)浩
(*-*)浩Original
2019-05-22 09:21:133985Durchsuche

Die String-Klasse in Java wird sehr häufig verwendet. Schauen wir uns also an, was sie ist.

Was ist eine String-Klasse in Java?

String ist ein unveränderliches Objekt

Die Klasse java.lang.String verwendet die endgültige Änderung und kann nicht vererbt werden. Alle Literalwerte in Java-Programmen, also in doppelte Anführungszeichen eingeschlossene Zeichenfolgen wie „abc“, werden als Instanzen der String-Klasse implementiert.

String ist eine Konstante und ihr Objekt kann nach der Erstellung nicht mehr geändert werden. Mit anderen Worten: Das String-Objekt ist unveränderlich und jede Methode, die scheinbar den String-Wert ändert, erstellt tatsächlich ein neues String-Objekt, das den geänderten String-Inhalt enthält. Das ursprüngliche String-Objekt bleibt unverändert. Das String-Objekt verfügt über schreibgeschützte Eigenschaften und jede Referenz, die darauf verweist, kann seinen Wert nicht ändern. Daher hat es keine Auswirkungen auf andere Referenzen. String-Referenzen können jedoch neu zugewiesen werden.

Java-Strings verwenden im Speicher die Unicode-Codierung. Jedes Zeichen entspricht einer Zwei-Byte-Codierung mit fester Länge, d. h. jedes Zeichen (ob Chinesisch oder Englisch) wird als ein Zeichen in der Länge gezählt und belegt zwei Wörter. Festival.

Beispiel:

public class Immutable {
      public static String upcase(String s) {
           return s.toUpperCase();
      }
      public static void main(String[ ] args) {
           String str1= "Hello World";
           System.out.println(str1);  //Hello World
           String str2 = upcase(str1);
           System.out.println(str2);  //HELLO WORLD
           System.out.println(str1);  //Hello World
     }
}

Wenn str1 an die upcase()-Methode übergeben wird, wird tatsächlich eine Kopie der Referenz übergeben. Tatsächlich wird immer dann, wenn ein String-Objekt als Parameter einer Methode verwendet wird, eine Referenz kopiert, und das Objekt, auf das die Referenz zeigt, verbleibt tatsächlich an einem einzigen physischen Ort und wurde nie verschoben.

String-Konstantenpool

Der Konstantenpool bezieht sich auf einige Daten, die während der Kompilierung ermittelt und in der kompilierten .class-Datei gespeichert werden. Es umfasst Konstanten in Klassen, Methoden, Schnittstellen usw. sowie Zeichenfolgenkonstanten. Um die Leistung in Java zu verbessern, werden statische Zeichenfolgen (Ergebnisse von Literalen/Konstanten/konstanten Verbindungen) im Konstantenpool erstellt und versucht, dasselbe Objekt zu verwenden und statische Zeichenfolgen wiederzuverwenden. Bei wiederholten Zeichenfolgenliteralen sucht die JVM zunächst im Konstantenpool und gibt das Objekt zurück, sofern es im Konstantenpool vorhanden ist.

Beispiel 2:

public class test1 {
    public static void main(String[] args){
        String str1 = "Hello";
        //不会创建新的String对象,而是使用常量池中已有的"Hello",
        String str2 = "Hello";
        System.out.println(str1 == str2); //true
        //使用new关键字会创建新的String对象
        String str3 = new String("Hello");
        System.out.println(str1 == str3); //false 
    }
}

Das obige ist der detaillierte Inhalt vonWas ist eine String-Klasse in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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

In Verbindung stehende Artikel

Mehr sehen