Senin, 30 Agustus 2010

StringBuffer

Pada tulisan kali ini saya membahas mengenai String Buffer. Karena pada saat kuliah pemrograman (khusunya java), class StringBuffer belum begitu umum digunakan daripada class String. Sehingga membuat saya penasaran terhadap penggunaan StringBuffer ini. Java memiliki satu class lagi selain class String, yaitu StringBuffer. Nah yang menimbulkan pertanyaan bagi saya yaitu adalah apa bedanya StringBuffer dengan class String biasa ?? :).

Kita mulai dulu dengan apa itu String ? class String adalah class yang hanya merepresentasikan untaian karakter. String tidak bisa dimanipulasi, dan class String bersifat konstan atau tetap (immutable), jadi sekali objek String dibuat maka objek itu akan tetap ada dan nilainya tidak berubah meskipun anda memanipulasinya dengan method tertentu atau menggunakan operator tertentu seperti "+" untuk menggabungkan dua objek string.
String str = "abcd"; ------> Objek 1
str += "efgh"; ----> str akan dibuatkan StringBuffer temporary lalu ditimpa dengan "efgh" dikonversi menjadi String menggunakan method toString. Dimana method ini akan membuat objek string baru.

Sehingga String str yang lama dengan nilai "abcd" akan tetap ada dan tidak mengalami perubahan. Hal ini sangat berbahaya misalnya jika kita ingin menggabungkan suatu String dengan nilai String lainnya secara terus menerus, karena akan menghabiskan banyak memori.

Lalu Bagaimana dengan Class String Buffer. String Buffer adalah suatu class khusus yang digunakan untuk memanipulasi untaian karakater dan sifatnya tidak tetap (mutable). Pemanipulasian menggunakan StringBuffer menjadi lebih cepat dan tidak menghabiskan banyak memori, karena java tidak perlu membuat StringBuffer temporary untuk memanipulasi suatu string.


REFERENSI
Javadocs.

2 komentar:

  1. Jika ada pertanyaan: jelaskan apa itu object strong buffer. Apakah sama dengan class string buffer? Trims. Mohon di reply :)

    BalasHapus

  2. Jika ada pertanyaan: jelaskan apa itu object strong buffer. Apakah sama dengan class string buffer? Trims. Mohon di reply :)

    BalasHapus