Was sind die Unterschiede zwischen String, Stringbuffer und Stringbuilder?
In einem Telefoninterview wurde der Redakteur gefragt, ob StringBuilder Thread-sicher ist . Es ist sicher, damit herauszuplatzen, aber die Leute fragen mich, ob Sie 2 Jahre Entwicklungserfahrung haben. Wenn ich diesen Kurs längere Zeit nicht nutzte, vergaß ich meine Wahl. Man kann auch sagen, dass das Fundament nicht stark ist. Ich weiß nicht, ob einer von euch eine solche Erfahrung gemacht hat, deshalb sollte ich es besser schriftlich festhalten, um mein Gedächtnis zu verbessern.
String: Jeder weiß, dass String mit final geändert wird, sodass sein Wert unveränderlich ist. Dies führt dazu, dass bei jeder Operation an String ein neues String-Objekt generiert wird. Dies ist auch eine große Menge an Verschwendung Begrenzter Speicherplatz, wie in der Abbildung gezeigt:
Wir können sehen, dass der anfängliche String-Wert „abc“ ist, und dann nach dieser Zeichenfolge eine neue Zeichenfolge „bv“ hinzufügen. Dieser Vorgang erfordert das erneute Öffnen des Speicherplatzes im Stapelspeicher. Ich muss sagen, dass die Zeichenfolge „abcbv“ den Speicherplatz entsprechend öffnen muss dass dies eine enorme Verschwendung von Speicherplatz ist. Um häufige stringbezogene Vorgänge zu bewältigen, wurden zwei neue Klassen – die StringBuffer-Klasse und die StringBuild-Klasse – eingeführt, um solche sich ändernden Strings zu verarbeiten.
StringBuilder-Klasse: vorgeschlagen in Java 5, gekennzeichnet durch veränderbare Zeichenfolgen. Hohe Ausführungseffizienz und Thread-Unsicherheit.
StringBuffer-Klasse: zeichnet sich durch variable Zeichenfolgen, geringe Ausführungseffizienz und Thread-Sicherheit aus.
Man sieht, dass die Zeit schneller ist.
Zusammenfassung:
Wenn Sie eine kleine Datenmenge verarbeiten möchten, verwenden Sie String;
Multithread-Betrieb String-Puffer-Operation Eine große Datenmenge StringBuffer
Ein einzelner Thread betreibt eine große Datenmenge StringBuilder unter dem String-Puffer.
Empfohlenes Tutorial: „Java-Tutorial“
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen String, Stringbuffer und Stringbuilder. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!