Perbezaan antara StringBuffer String dan StringBuilder di Java

Perbezaan antara StringBuffer String dan StringBuilder di Java

Perbezaan utama - rentetan vs stringbuffer vs stringbuilder di java
 

String, StringBuffer dan String Builder adalah kelas di Java. String digunakan secara meluas dalam pengaturcaraan Java. Sebaik sahaja objek rentetan dibuat, tidak mungkin untuk mengubahnya. Setiap kali perubahan berlaku pada rentetan, ia menghasilkan rentetan baru. Walaupun ia adalah penyambungan kepada rentetan yang ada, ia membuat rentetan baru. Ini menyebabkan pembaziran memori. Kelas StringBuffer dan StringBuilder di Java digunakan untuk mengubah suai rentetan. The Perbezaan utama Antara String, StringBuffer dan StringBuilder di Java adalah bahawa String adalah kelas untuk membuat objek rentetan jenis yang merupakan urutan aksara, StringBuffer adalah kelas yang digunakan untuk mengubah suai rentetan yang menyediakan keselamatan benang, dan StringBuilder adalah kelas yang digunakan untuk mengubah suai rentetan yang tidak memberikan keselamatan benang.

Kandungan

1. Gambaran Keseluruhan dan Perbezaan Utama
2. Apa itu rentetan di Java
3. Apa itu StringBuffer di Java
4. Apa itu StringBuilder di Java
5. Persamaan antara StringBuffer String dan StringBuilder di Java
6. Perbandingan sampingan - String vs StringBuffer vs StringBuilder dalam Java dalam bentuk jadual
7. Ringkasan

Apa itu rentetan di Java?

Kelas String ada di Java.Pakej Lang. Setiap kali pengaturcara mencipta rentetan, ia adalah objek rentetan jenis. Rentetan makna yang tidak berubah apabila objek dibuat, ia tidak dapat diubah. Objek yang dibuat menggunakan kelas pembalut seperti integer, byte, float, double juga tidak berubah. Rentetan literal tertutup dalam petikan berganda. e.g. "Hai dunia".  Setiap kali rentetan literal dibuat, Mesin Maya Java (JVM) menyemak kolam tetap rentetan. Sekiranya rentetan wujud, rujukan kepada kolam tetap rentetan dikembalikan. Sekiranya ia adalah rentetan baru, objek itu dibuat di kolam rentetan rentetan.

Rajah 01: Program Java Menggunakan String, StringBuffer dan StringBuilder

Rujuk sekeping kod di bawah.

String S1 = "Hello";

S1 = S1 + "Dunia";

Sistem.keluar.println (s1);

Dalam pernyataan pertama, S1 merujuk kepada "hello" di kolam rentetan rentetan. Dalam pernyataan kedua, JVM tidak mengubah rentetan yang ada. Sebaliknya, ia mewujudkan rentetan baru sebagai "Hello World" dan S1 kini merujuk kepada rentetan baru itu. Objek "hello" keluar masih ada di kolam rentetan rentetan.

Sekiranya terdapat kod yang,

String S1 = "Hello";

String S2 = S1;

s1, s2 kedua -duanya akan merujuk kepada objek rentetan "hello".

Apa itu StringBuffer di Java?

Kelas StringBuffer digunakan untuk membuat objek rentetan. Oleh itu, objek tersebut dapat diubah suai. StringBuffer mentakrifkan empat pembina. StringBuffer (), StringBuffer (saiz int), StringBuffer (String str), StringBuffer (ChareSequence [] ch)

Rujuk kod di bawah,

StringBuffer S1 = StringBuffer baru ("Hello");

s1.tambah ("dunia");

Sistem.keluar.println (s1);

Dalam pernyataan 1, s1 merujuk kepada objek "hello" dalam timbunan. Objeknya boleh berubah kerana ia dibuat menggunakan stringbuffer. Dalam Pernyataan 2, "Dunia" dilampirkan kepada objek String "Hello" yang sama.

Objek rentetan yang dibuat dengan kelas stringbuffer dapat menjimatkan memori. StringBuffer menyediakan keselamatan benang kerana dua benang tidak dapat mengakses kaedah yang sama dalam kelas stringbuffer secara serentak. Keselamatan Thread Kurangkan Prestasi StringBuffer. Kelas StringBuffer mengandungi kaedah seperti tambahan (), masukkan (), terbalik (), ganti ().

Apa itu StringBuilder di Java?

Kelas StringBuilder digunakan untuk membuat objek rentetan. Oleh itu, objek tersebut dapat diubah suai. Fungsiannya serupa dengan StringBuffer, tetapi ini tidak memberikan keselamatan benang. StringBuilder mempunyai pembina seperti StringBuilder (), StringBuilder (Int Size), StringBuilder (String str).

Rujuk kod di bawah.

StringBuilder S1 = New StringBuilder ("Hello");

s1.tambah ("dunia");

Sistem.keluar.println (s1);

Dalam pernyataan 1, s1 merujuk kepada objek "hello" dalam timbunan. Objeknya boleh berubah kerana ia dibuat menggunakan StringBuilder. Dalam Pernyataan 2, "Dunia" dilampirkan kepada objek String "Hello" yang sama.  Tidak ada penciptaan objek rentetan yang benar -benar baru.

Objek String yang Dibuat dengan Kelas StringBuilder Dapat Menyimpan Memori. Tidak seperti di StringBuffer, StringBuilder tidak memberikan keselamatan benang kerana dua benang dapat mengakses kaedah yang sama dalam kelas StringBuilder secara serentak. Kelas StringBuilder mengandungi kaedah seperti tambahan (), masukkan (), terbalik (), ganti ().

Apakah persamaan antara String, StringBuffer dan StringBuilder di Java?

  • Semua boleh digunakan untuk membuat rentetan.

Apakah perbezaan antara StringBuffer String dan StringBuilder di Java?

String vs StringBuffer vs StringBuilder

Tali Rentetan adalah kelas Java yang digunakan untuk membuat objek rentetan jenis, yang merupakan urutan aksara.
StringBuffer StringBuffer adalah kelas Java yang digunakan untuk membuat objek rentetan, yang boleh diubah suai dengan keselamatan benang.
StringBuilder StringBuilder adalah kelas yang digunakan untuk membuat objek rentetan, yang boleh diubah suai tanpa keselamatan benang.
Mutabiliti
Tali Rentetan adalah kelas yang tidak berubah.
StringBuffer StringBuffer adalah kelas yang boleh berubah.
StringBuilder StringBuilder adalah kelas yang boleh berubah.
Keselamatan Thread
Tali Kaedah rentetan adalah benang selamat.
StringBuffer Kaedah StringBuffer adalah benang selamat dan disegerakkan.
StringBuilder Kaedah StringBuilder tidak selamat dan tidak disegerakkan.
Prestasi
Tali Rentetannya pantas.
StringBuffer Stringbuffer perlahan.
StringBuilder StringBuilder cepat.

Ringkasan -String vs stringbuffer vs stringbuilder di java 

String, StringBuffer dan StringBuilder nampaknya sama, tetapi mereka mempunyai makna yang berbeza. Semua ini adalah kelas java. Perbezaan antara rentetan, stringbuffer dan stringbuilder di java adalah bahawa, rentetan adalah kelas untuk membuat objek jenis rentetan, yang merupakan satu set aksara, StringBuffer adalah kelas yang digunakan untuk mengubahsuai rentet kelas yang digunakan untuk mengubah suai rentetan yang tidak memberikan keselamatan benang.

Muat turun PDF String vs StringBuffer vs StringBuilder di Java

Anda boleh memuat turun versi PDF artikel ini dan menggunakannya untuk tujuan luar talian mengikut nota petikan. Sila muat turun versi PDF di sini perbezaan antara StringBuffer String dan StringBuilder di Java

Rujukan:

1."String vs stringbuffer vs stringbuilder."JournalDev, 30 Julai 2017. Terdapat di sini
2."Java lapar."Perbezaan antara String, StringBuilder dan StringBuffer Kelas dengan Contoh: Java | Java lapar. Terdapat di sini 
3.TutorialSpoint.com. "Java Strings." Tujuan itu. Terdapat di sini