Perbedaan Kunci – String vs StringBuffer vs StringBuilder di Java
String, StringBuffer dan String Builder adalah kelas-kelas di Java. String banyak digunakan dalam pemrograman Java. Setelah objek String dibuat, tidak mungkin untuk mengubahnya. Setiap kali terjadi perubahan pada String, itu membuat String baru. Bahkan jika itu adalah gabungan dari String yang ada, ia menciptakan sebuah String baru. Hal ini menyebabkan pemborosan memori. Kelas StringBuffer dan StringBuilder di Java digunakan untuk memodifikasi String. Perbedaan utama antara String, StringBuffer dan StringBuilder di Java adalah bahwa String adalah kelas untuk membuat objek bertipe String yang merupakan urutan karakter, StringBuffer adalah kelas yang digunakan untuk memodifikasi String yang menyediakan keamanan thread, dan StringBuilder adalah class yang digunakan untuk memodifikasi String yang tidak memberikan keamanan thread.
Apa itu String di Java?
String class ada dalam paket java.lang. Setiap kali programmer membuat String, itu adalah objek bertipe String. String adalah makna yang tidak dapat diubah setelah objek dibuat, itu tidak dapat diubah. Objek yang dibuat menggunakan kelas pembungkus seperti Integer, Byte, Float, Double juga tidak dapat diubah. Sebuah literal string diapit oleh tanda kutip ganda. misalnya "Halo Dunia". Setiap kali literal string dibuat, Java Virtual Machine (JVM) memeriksa kumpulan konstanta String. Jika String ada, referensi ke kumpulan konstanta String dikembalikan. Jika itu adalah String baru, objek itu dibuat di 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 mengacu pada "Halo" di kumpulan konstanta String. Dalam pernyataan kedua, JVM tidak mengubah String yang ada. Sebagai gantinya, ia membuat 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, String s1=”Halo”;
String s2=s1;
s1, s2 keduanya akan merujuk ke objek String "Halo".
Apa itu StringBuffer di Java?
StringBuffer class digunakan untuk membuat objek String bisa berubah. Oleh karena itu, objek-objek tersebut dapat dimodifikasi. StringBuffer mendefinisikan empat konstruktor. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)
Lihat kode di bawah ini, StringBuffer s1=new StringBuffer(“Halo”);
s1.append(“Dunia”);
System.out.println(s1);
Dalam pernyataan 1, s1 mengacu pada objek "Halo" di heap. Objek bisa berubah karena dibuat menggunakan StringBuffer. Dalam pernyataan 2, "Dunia" ditambahkan ke objek String "Halo" yang sama.
String objek 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 utas menurunkan kinerja StringBuffer. Kelas StringBuffer berisi metode seperti append(), insert(), reverse(), replace().
Apa itu StringBuilder di Java?
StringBuilder class 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(int size), StringBuilder(String str).
Lihat kode di bawah ini.
StringBuilder s1=new StringBuilder(“Halo”);
s1.append(“Dunia”);
System.out.println(s1);
Dalam pernyataan 1, s1 mengacu pada 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 benar-benar baru.
String objek yang dibuat dengan kelas StringBuilder dapat menghemat memori. Tidak seperti di StringBuffer, StringBuilder tidak memberikan keamanan utas karena dua utas dapat mengakses metode yang sama di kelas StringBuilder secara bersamaan. Kelas StringBuilder berisi metode seperti append(), insert(), reverse(), replace().
Apa Persamaan Antara String, StringBuffer dan StringBuilder di Java?
Semua dapat digunakan untuk membuat String
Apa Perbedaan Antara String StringBuffer dan StringBuilder di Java?
String vs StringBuffer vs StringBuilder |
|
String | String adalah kelas Java yang digunakan untuk membuat objek bertipe 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 keamanan thread. |
Mutabilitas | |
String | String adalah kelas yang tidak dapat diubah. |
StringBuffer | StringBuffer adalah kelas yang bisa berubah. |
StringBuilder | StringBuilder adalah kelas yang bisa berubah. |
Keamanan Thread | |
String | Metode String aman untuk thread. |
StringBuffer | Metode StringBuffer aman dan tersinkronisasi. |
StringBuilder | Metode StringBuilder tidak aman dan tidak tersinkronisasi. |
Kinerja | |
String | Senarnya cepat. |
StringBuffer | StringBuffer lambat. |
StringBuilder | StringBuilder cepat. |
Ringkasan – String vs StringBuffer vs StringBuilder di Java
String, StringBuffer dan StringBuilder tampaknya sama, tetapi memiliki arti yang berbeda. Semua ini adalah kelas Java. Perbedaan antara String, StringBuffer dan StringBuilder di Java adalah, String adalah kelas untuk membuat objek bertipe String, yang merupakan kumpulan karakter, StringBuffer adalah kelas yang digunakan untuk memodifikasi String dan memberikan keamanan thread, sedangkan StringBuilder adalah class yang digunakan untuk memodifikasi String yang tidak memberikan keamanan thread.
Unduh PDF String vs StringBuffer vs StringBuilder di Java
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 Java