String, StringBuffer dan String Builder adalah kelas di Jawa. String banyak digunakan dalam pemrograman Java. Setelah objek String dibuat, tidak mungkin untuk mengubahnya. Setiap kali perubahan terjadi pada String, itu menciptakan String baru. Bahkan jika ini merupakan gabungan dari String yang sudah ada, ia menciptakan String baru. Ini menyebabkan pemborosan memori. Kelas StringBuffer dan StringBuilder di Java digunakan untuk memodifikasi String. Itu perbedaan utama antara String, StringBuffer dan StringBuilder di Jawa adalah itu String adalah kelas untuk membuat objek bertipe String yang merupakan urutan karakter, StringBuffer adalah kelas yang digunakan untuk memodifikasi Strings yang memberikan keamanan thread, dan StringBuilder adalah kelas yang digunakan untuk memodifikasi Strings yang tidak memberikan keamanan thread..
1. Ikhtisar dan Perbedaan Utama
2. Apa itu String di Java
3. Apa itu StringBuffer di Jawa
4. Apa itu StringBuilder di Jawa
5. Kesamaan Antara String StringBuffer dan StringBuilder di Jawa
6. Perbandingan Berdampingan - String vs StringBuffer vs StringBuilder di Jawa dalam Bentuk Tabular
7. Ringkasan
Kelas string dalam paket java.lang. Setiap kali programmer membuat sebuah String, itu adalah objek tipe String. String adalah makna abadi setelah objek dibuat, itu tidak dapat diubah. Objek yang dibuat menggunakan kelas wrapper seperti Integer, Byte, Float, Double juga tidak berubah. String literal terlampir dalam tanda kutip ganda. misalnya "Halo Dunia". Setiap kali string literal dibuat, Java Virtual Machine (JVM) memeriksa kumpulan konstanta String. Jika String ada, referensi ke kolam konstan String dikembalikan. Jika itu adalah String baru, objek itu dibuat dalam kumpulan konstanta String.
Gambar 01: Program Java menggunakan String, StringBuffer dan StringBuilder
Lihat potongan kode di bawah ini.
String s1 = “Halo”;
s1 = s1 + “Dunia”;
System.out.println (s1);
Dalam pernyataan pertama, s1 merujuk ke "Halo" di kumpulan konstanta String. Dalam pernyataan kedua, JVM tidak mengubah String yang ada. Sebagai gantinya, ia menciptakan String baru sebagai "Hello World" dan s1 sekarang merujuk ke String baru itu. Objek "Halo" yang keluar masih ada di kumpulan konstanta String.
Jika ada kode yang ada,
String s1 = ”Halo”;
String s2 = s1;
s1, s2 keduanya akan merujuk ke objek String "Hello".
Kelas StringBuffer digunakan untuk membuat objek String bisa berubah. Oleh karena itu, objek-objek tersebut dapat dimodifikasi. StringBuffer mendefinisikan empat konstruktor. StringBuffer (), StringBuffer (ukuran int), StringBuffer (String str), StringBuffer (charSequence [] ch)
Lihat kode di bawah ini,
StringBuffer s1 = new StringBuffer ("Hello");
s1.append ("Dunia");
System.out.println (s1);
Dalam pernyataan 1, s1 merujuk ke objek "Halo" di heap. Objek bisa berubah karena dibuat menggunakan StringBuffer. Dalam pernyataan 2, "Dunia" ditambahkan ke objek String "Halo" yang sama.
Objek string yang dibuat dengan kelas StringBuffer dapat menghemat memori. StringBuffer memberikan keamanan utas karena dua utas tidak dapat mengakses metode yang sama di kelas StringBuffer secara bersamaan. Keamanan benang mengurangi kinerja StringBuffer. Kelas StringBuffer berisi metode seperti append (), insert (), reverse (), replace ().
Kelas StringBuilder digunakan untuk membuat objek String bisa berubah. Oleh karena itu, objek-objek tersebut dapat dimodifikasi. Fungsionalitasnya mirip dengan StringBuffer, tetapi ini tidak memberikan keamanan utas. StringBuilder memiliki konstruktor seperti StringBuilder (), StringBuilder (ukuran int), StringBuilder (String str).
Lihat kode di bawah ini.
StringBuilder s1 = new StringBuilder ("Halo");
s1.append ("Dunia");
System.out.println (s1);
Dalam pernyataan 1, s1 merujuk ke objek "Halo" di heap. Objek bisa berubah karena dibuat menggunakan StringBuilder. Dalam pernyataan 2, "Dunia" ditambahkan ke objek String "Halo" yang sama. Tidak ada pembuatan objek String yang sama sekali baru.
Objek string yang dibuat dengan kelas StringBuilder dapat menghemat memori. Tidak seperti di StringBuffer, StringBuilder tidak menyediakan keamanan utas karena dua utas dapat mengakses metode yang sama di kelas StringBuilder secara bersamaan. Kelas StringBuilder berisi metode seperti append (), insert (), reverse (), replace ().
String vs StringBuffer vs StringBuilder | |
Tali | String adalah kelas Java yang digunakan untuk membuat objek tipe String, yang merupakan urutan karakter. |
StringBuffer | StringBuffer adalah kelas Java yang digunakan untuk membuat objek String, yang dapat dimodifikasi dengan keamanan thread. |
StringBuilder | StringBuilder adalah kelas yang digunakan untuk membuat objek string, yang dapat dimodifikasi tanpa pengaman thread. |
Mutabilitas | |
Tali | String adalah kelas yang tidak dapat diubah. |
StringBuffer | StringBuffer adalah kelas yang bisa berubah. |
StringBuilder | StringBuilder adalah kelas yang bisa berubah. |
Keamanan Thread | |
Tali | Metode String aman untuk thread. |
StringBuffer | Metode StringBuffer aman dan tersinkronisasi. |
StringBuilder | Metode StringBuilder tidak diulir aman dan tidak disinkronkan. |
Performa | |
Tali | Tali itu cepat. |
StringBuffer | StringBuffer lambat. |
StringBuilder | StringBuilder cepat. |
String, StringBuffer dan StringBuilder tampaknya sama, tetapi mereka memiliki arti yang berbeda. Semua ini adalah kelas Java. Perbedaan antara String, StringBuffer dan StringBuilder di Jawa adalah bahwa, String adalah kelas untuk membuat objek bertipe String, yang merupakan sekumpulan karakter, StringBuffer adalah kelas yang digunakan untuk memodifikasi String dan memberikan keamanan benang, sedangkan StringBuilder adalah kelas yang digunakan untuk memodifikasi Strings yang tidak memberikan keamanan thread.
Anda dapat mengunduh versi PDF dari artikel ini dan menggunakannya untuk tujuan offline sesuai catatan kutipan. Silakan unduh versi PDF di sini Perbedaan Antara String StringBuffer dan StringBuilder di Jawa
1. "String vs StringBuffer vs StringBuilder." JournalDev, 30 Juli 2017. Tersedia di sini
2. "Java Hungry." Perbedaan Antara Kelas String, StringBuilder dan StringBuffer dengan Contoh: Java | Java Hungry. Tersedia disini
3.tutorialspoint.com. "Java Strings." Inti nya. Tersedia disini