Perbezaan Antara String StringBuffer dan StringBuilder di Java

Isi kandungan:

Perbezaan Antara String StringBuffer dan StringBuilder di Java
Perbezaan Antara String StringBuffer dan StringBuilder di Java

Video: Perbezaan Antara String StringBuffer dan StringBuilder di Java

Video: Perbezaan Antara String StringBuffer dan StringBuilder di Java
Video: Строки в Java. String, StringBuilder, StringBuffer, Wrappers. Java Professional. Урок 5 2024, Disember
Anonim

Perbezaan Utama – String vs StringBuffer vs StringBuilder dalam Java

String, StringBuffer dan String Builder ialah kelas dalam Java. String digunakan secara meluas dalam pengaturcaraan Java. Sebaik sahaja objek String dicipta, ia tidak boleh diubah. Setiap kali perubahan berlaku pada String, ia mencipta String baharu. Walaupun ia merupakan gabungan kepada String sedia ada, ia mencipta String baharu. Ini menyebabkan pembaziran ingatan. Kelas StringBuffer dan StringBuilder dalam Java digunakan untuk mengubah suai String. Perbezaan utama antara String, StringBuffer dan StringBuilder dalam Java ialah String ialah kelas untuk mencipta objek jenis String yang merupakan jujukan aksara, StringBuffer ialah kelas yang digunakan untuk mengubah suai Strings yang menyediakan keselamatan thread, dan StringBuilder ialah kelas yang digunakan untuk mengubah suai Strings yang tidak menyediakan keselamatan thread.

Apakah String dalam Java?

Kelas rentetan adalah dalam pakej java.lang. Setiap kali pengaturcara mencipta String, ia adalah objek jenis String. Rentetan adalah makna yang tidak berubah setelah objek dicipta, ia tidak boleh diubah. Objek yang dicipta menggunakan kelas pembalut seperti Integer, Byte, Float, Double juga tidak boleh diubah. Satu literal rentetan disertakan dalam petikan berganda. cth. "Hai dunia". Setiap kali literal rentetan dicipta, Mesin Maya Java (JVM) menyemak kumpulan pemalar String. Jika String wujud, rujukan kepada kumpulan pemalar String dikembalikan. Jika ia adalah String baharu, objek itu dicipta dalam kumpulan pemalar String.

Perbezaan Antara String StringBuffer dan StringBuilder di Java
Perbezaan Antara String StringBuffer dan StringBuilder di Java
Perbezaan Antara String StringBuffer dan StringBuilder di Java
Perbezaan Antara String StringBuffer dan StringBuilder di Java

Rajah 01: Program Java menggunakan String, StringBuffer dan StringBuilder

Rujuk sekeping kod di bawah.

String s1=“Hello”;

s1=s1 + “Dunia”;

System.out.println(s1);

Dalam pernyataan pertama, s1 merujuk kepada “Hello” dalam kumpulan pemalar String. Dalam pernyataan kedua, JVM tidak mengubah String sedia ada. Sebaliknya, ia mencipta String baharu sebagai "Hello World" dan s1 kini merujuk kepada String baharu itu. Objek "Hello" yang keluar masih wujud dalam kumpulan pemalar String.

Jika terdapat kod iaitu, String s1=”Hello”;

String s2=s1;

s1, s2 kedua-duanya akan merujuk kepada objek String “Hello”.

Apakah StringBuffer dalam Java?

Kelas StringBuffer digunakan untuk menjadikan objek String boleh berubah. Oleh itu, objek tersebut boleh diubah suai. StringBuffer mentakrifkan empat pembina. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)

Rujuk kod di bawah, StringBuffer s1=StringBuffer baharu(“Hello”);

s1.append(“Dunia”);

System.out.println(s1);

Dalam pernyataan 1, s1 merujuk kepada objek “Hello” dalam timbunan. Objek boleh berubah kerana ia dicipta menggunakan StringBuffer. Dalam pernyataan 2, "Dunia" dilampirkan pada objek Rentetan "Hello" yang sama.

Objek rentetan yang dibuat dengan kelas StringBuffer boleh menjimatkan memori. StringBuffer menyediakan keselamatan thread kerana dua thread tidak boleh mengakses kaedah yang sama dalam kelas StringBuffer secara serentak. Keselamatan benang mengurangkan prestasi StringBuffer. Kelas StringBuffer mengandungi kaedah seperti append(), insert(), reverse(), replace().

Apakah StringBuilder dalam Java?

KelasStringBuilder digunakan untuk menjadikan objek String boleh berubah. Oleh itu, objek tersebut boleh diubah suai. Fungsi ini 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=StringBuilder baharu(“Hello”);

s1.append(“Dunia”);

System.out.println(s1);

Dalam pernyataan 1, s1 merujuk kepada objek “Hello” dalam timbunan. Objek boleh berubah kerana ia dicipta menggunakan StringBuilder. Dalam pernyataan 2, "Dunia" dilampirkan pada objek Rentetan "Hello" yang sama. Tiada penciptaan objek String baharu sepenuhnya.

Objek rentetan yang dibuat dengan kelas StringBuilder boleh menjimatkan memori. Tidak seperti dalam StringBuffer, StringBuilder tidak menyediakan keselamatan thread kerana dua thread boleh mengakses kaedah yang sama dalam kelas StringBuilder secara serentak. Kelas StringBuilder mengandungi kaedah seperti append(), insert(), reverse(), replace().

Apakah Persamaan Antara String, StringBuffer dan StringBuilder dalam Java?

Semua boleh digunakan untuk membuat Strings

Apakah Perbezaan Antara String StringBuffer dan StringBuilder dalam Java?

String lwn StringBuffer lwn StringBuilder

String Rentetan ialah kelas Java yang digunakan untuk mencipta objek jenis String, iaitu urutan aksara.
StringBuffer StringBuffer ialah kelas Java yang digunakan untuk mencipta objek String, yang boleh diubah suai dengan keselamatan benang.
StringBuilder StringBuilder ialah kelas yang digunakan untuk mencipta objek rentetan, yang boleh diubah suai tanpa keselamatan benang.
Mutability
String Rentetan ialah kelas yang tidak boleh diubah.
StringBuffer StringBuffer ialah kelas boleh ubah.
StringBuilder StringBuilder ialah kelas boleh ubah.
Keselamatan Benang
String Kaedah Rentetan adalah selamat untuk urutan.
StringBuffer Kaedah StringBuffer adalah selamat untuk benang dan disegerakkan.
StringBuilder Kaedah StringBuilder tidak disambungkan dengan selamat dan tidak disegerakkan.
Prestasi
String Rentetan itu pantas.
StringBuffer StringBuffer lambat.
StringBuilder StringBuilder adalah pantas.

Ringkasan – String vs StringBuffer vs StringBuilder dalam Java

String, StringBuffer dan StringBuilder nampaknya sama, tetapi ia mempunyai maksud yang berbeza. Semua ini adalah kelas Java. Perbezaan antara String, StringBuffer dan StringBuilder dalam Java ialah, String ialah kelas untuk mencipta objek jenis String, iaitu satu set aksara, StringBuffer ialah kelas yang digunakan untuk mengubah suai Strings dan menyediakan keselamatan thread, manakala StringBuilder ialah kelas yang digunakan untuk mengubah suai Strings yang tidak menyediakan keselamatan thread.

Muat turun PDF String vs StringBuffer vs StringBuilder dalam Java

Anda boleh memuat turun versi PDF artikel ini dan menggunakannya untuk tujuan luar talian seperti dalam nota petikan. Sila muat turun versi PDF di sini Perbezaan Antara String StringBuffer dan StringBuilder dalam Java

Disyorkan: