Heim > Java > javaLernprogramm > Hauptteil

Der Unterschied zwischen der String-Klasse und der StringBuffer-Klasse in JAVA

高洛峰
Freigeben: 2017-01-21 16:31:32
Original
1381 Leute haben es durchsucht

In Java gibt es zwei Arten von String-Operationen: String-Klasse und StringBuffer-Klasse (gepufferte String-Verarbeitungsklasse).
Lassen Sie uns kurz über den Unterschied zwischen den beiden sprechen.
Sowohl die String-Klasse als auch die StringBuffer-Klasse stellen entsprechende Methoden zum Implementieren von String-Operationen bereit, unterscheiden sich jedoch geringfügig.

(1) String-Klasse
Sobald diese Klasse einen String generiert, ist ihr Objekt unveränderlich. Der Inhalt und die Länge der String-Klasse sind festgelegt. Wenn das Programm Zeichenfolgeninformationen abrufen muss, muss es verschiedene vom System bereitgestellte Zeichenfolgenoperationsmethoden aufrufen. Obwohl Operationen über verschiedene Systemmethoden auf Zeichenfolgen angewendet werden können, ändert dies nicht die Objektinstanz selbst, sondern generiert eine neue Instanz. Das System weist den Objekten der String-Klasse Speicher zu, basierend auf der tatsächlichen Anzahl der im Objekt enthaltenen Zeichen.

(2) StringBuffer-Klasse
Ich habe das Wort Buffer nachgeschlagen und es bedeutet Puffern. Diese Klasse muss die Funktion des Pufferns haben. Diese Klasse verarbeitet veränderliche Zeichenfolgen. Wenn Sie eine Zeichenfolge der StringBuffer-Klasse ändern möchten, müssen Sie kein neues Zeichenfolgenobjekt erstellen, sondern direkt die ursprüngliche Zeichenfolge bearbeiten. Die verschiedenen String-Manipulationsmethoden dieser Klasse stimmen nicht mit denen der String-Klasse überein. Wenn das System Speicher für die StringBuffer-Klasse zuweist, stellt es zusätzlich zu dem vom aktuellen Zeichen belegten Speicherplatz auch einen zusätzlichen Puffer für 16 Zeichen bereit. Jedes StringBuffer-Objekt verfügt über eine bestimmte Pufferkapazität. Wenn die Zeichenfolgengröße die Kapazität nicht überschreitet, wird keine neue Kapazität zugewiesen.

Hier einige konkrete Beispiele

Verkettung von Zeichenfolgen

Die String-Klasse verfügt über zwei Methoden

Die erste ("+")

public class str{
  public static void main(String[] args){
      String str1="加特效!";
      String str2="Duang~~";
      System.out.println(str1+" "+str2);
    }
  }
Nach dem Login kopieren

Der zweite Typ ("concat")

public class str{
  public static void main(String[] args){
      String str1="加特效!";
      String str2="Duang~~";
      System.out.println(str1.concat(str2));
    }
  }
Nach dem Login kopieren

Methoden der StringBuffer-Klasse

public class str{
  public static void main(String[] args){
    //构建一个缓冲字符串的对象sb
    StringBuffer sb=new StringBuffer("加特效!");
    //通过append方法,在这个对象后面添加一个新字符串
    sb.append(" Duang~~");
    System.out.println(sb);
  }
}
Nach dem Login kopieren

Die endgültigen Ausgabeergebnisse sind: Spezialeffekte hinzufügen! Duang~~

Aus dem obigen Beispiel ist nicht schwer zu erkennen, dass beim Erweitern der String-Klasse zwei Objekte instanziiert werden müssen. Jedes Objekt belegt eine bestimmte Menge Speicher, die StringBuffer-Klasse jedoch nicht Sie müssen eine andere Klasse instanziieren. Für eine neue Klasse müssen Sie lediglich eine erweiterte Methode aufrufen.

Ein weiterer Punkt ist, dass die Speicherkapazität der StringBuffer-Klasse skalierbar ist. Um ein konkretes Beispiel zu nennen:

public class str{
  public static void main(String[] args){
     //声明字符串对象sb
      StringBuffer sb=new StringBuffer(40);
      System.out.println(sb.capacity());   //输出字符串的容量capacity
      sb.ensureCapacity(100);         //扩充容量
      System.out.println(sb.capacity());   //输出字符串的容量capacity
    }
  }
Nach dem Login kopieren

Die Methode Capacity() stellt die Anzahl der Strings dar, die das String-Objekt im Speicher halten kann. Wenn Sie die Speicherkapazität erweitern möchten, können Sie die Methode secureCapacity() verwenden.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er zum Lernen aller beiträgt. Ich hoffe auch, dass jeder die PHP-Chinesisch-Website unterstützt.

Weitere Artikel zum Unterschied zwischen der String-Klasse und der StringBuffer-Klasse in JAVA finden Sie auf der chinesischen PHP-Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage