Wednesday, January 4, 2017

Java - Perbedaan antara String dan StringBuffer/StringBuilder di Java

perbedaaan string dan stringbuffer/stringbuilder



String vs StringBuffer/StringBuilder

Perbedaan yang sangat mendasar antara String dengan StringBuffer/StringBuilder adalah String bersifat immutable sedangkan StringBuffer/StringBuilder bersifat mutable.

Object immutable adalah object yang isi value nya tidak bisa berubah. Kemudian muncul pertanyaan "Jika String adalah object immutable bagaimana caranya saya merubah value pada String tersebut ?"

Sebenarnya pada saat kita merubah String secara internal Java membuat satu object String baru untuk menampung perubahan tersebut.

sebagai contoh kita deklarasi sebuah String :

kemudian kita mau menambahkan kata " nasi" ke dalam iString.
ketika kita print, variable iString diatas akan menghasilkan output "makan nasi". Sekilas disini kita tetap menggunakan object yang sama (iString), akan tetapi Java secara internal membuat object baru untuk menampung kalimat "makan nasi" tersebut.

Apakah ini berdampak ke performance aplikasi ?
Iya.

Jadi, apa acara yang efisien untuk melakukan operasi di object String?
Gunakan StringBuffer/StringBuilder

StringBuffer/StringBuilder bersifat mutable, yang dimana kita dapat menambahkan isi value dari object tersebut dengan menggunakan method append(), delete() dan insert(). Kemudian dimana perbedaan nya antara StringBuffer dan StringBuilder. Perbedaan paling mendasar diantara keduanya adalah StringBuffer sudah synchronized(thread safe) dan StringBuilder tidak synchronized.

Jadi, jika kalian tidak menggunakan threading gunakan lah StringBuilder karena akan lebih efisien ketimbang StringBuffer.

0 comments:

Post a Comment