Memahami Class Stringbuffer Pada Java

Class StringBuffer ialah class yang terdapat pada package java.lang dan dipakai untuk menciptakan objek string mutable dan tidak ibarat class String yang immutable.

StringBuffer sanggup berubah secara dinamis. StringBuffer lebih dianjurkan untuk dipakai ketika memerlukan banyak operasi pada string, ibarat menambahkan, memasukkan, menghapus atau memodifikasi string.

StringBuffer juga thread safe.

StringBuffer merupakan urutan dari karakter-karakter yang sanggup diubah dengan dukungan dari banyak sekali method yang dimiliki oleh class tersebut.

Namun sebelumnya, untuk mengingat kembali dengan gampang mengapa String itu immutable, lihat baris isyarat berikut:

1 2 3 4 5 6 7 8 9
public class Test_String {    public static void main(String[] args) {   String string = "Belajar Java ";   string.concat("Itu Menyenangkan");   System.out.print(string);  }  } 


Output:
Belajar Java

Mengapa hasil tidak menampilkan "Belajar Java Itu Menyenangkan"? Karena String ialah immutable.

Dan ini bahu-membahu yang terjadi pada isyarat di atas:

 Class StringBuffer ialah class yang terdapat pada  Memahami Class StringBuffer Pada Java

Pada gambar di atas, dua objek ternyata telah dibuat. Namun, variabel acuan string ternyata masih mengacu ke "Belajar Java", tidak mengacu ke "Belajar Java Itu Menyenangkan".


Sekarang coba perhatikan baris isyarat berikut:


1 2 3 4 5 6 7 8 9
public class Test_String {    public static void main(String[] args) {   String string = "Belajar Java ";   string = string.concat("Itu Menyenangkan");   System.out.print(string);  }  } 


Output:
Belajar Java Itu Menyenangkan

Mengapa outputnya kini berbeda dengan output isyarat pertama?

Hal ini alasannya ialah secara eksplisit objek "Belajar Java Itu Menyenangkan" telah ditetapkan pada variabel string (lihat baris isyarat nomor 5 di atas).

Perbedaan StringBuffer Dan String



Berikut ini ialah perbedaan fundamental antara StringBuffer dan String yang perlu untuk diketahui:
NoStringBufferString
1Class mutableClass immutable
2StringBuffer lebih cepat dan lebih sedikit mengkonsumsi memori ketika melakukan
concat atau perangkaian String.
String mengkonsumsi lebih banyak memori
dan lebih lambat ketika melaksanakan concat atau
merangkaikan String. Karena setiap
kali hal itu dilakukan,maka instance gres akan di buat.
3Class StringBuffer tidak meng-override
method equals() dari class Object.
Dapat membandingkan konten
dari dua String dengan method equals().
Karena class String meng-override method equals() tersebut dari class Object.

Constructor

Terdapat 4 konstruktor untuk class StringBuffer yaitu:
  • StringBuffer ( ) 

  • StringBuffer (int size) 

  • StringBuffer (String str

  • StringBuffer (charSequence [ ]ch)

Method-method Penting Pada Class StringBuffer

Berikut ini ialah beberapa method penting dari class StringBuffer yang sering digunakan:

NoMethodPenjelasan
1append()Merangkaikan argumen yang diberikan
dengan string terkait
2insert()Memasukkan string yang diberikan pada
suatu string diposisi tertentu
3reverse()Membalikkan string
4replace()Mengganti string dari beginIndex dan
endIndex tertentu
5capacity()Mengembalikan nilai kapasitas string. Nilai
default ialah 16. Jika jumlah abjad bertambah
dari kapasitas lama, maka nilai kapasitas yang baru
ialah (nilai kapasitas usang * 2) + 2. Makara misalkan
nilai kapasitas ialah 16, maka sehabis penambahan
abjad nilai kapasitas menjadi (16 * 2) + 2 = 34
6ensureCapacity()Memastikan bahwa kapasitas yang diberikan adalah
sekurang-kurangnya sama dengan spesifikasi minimum.
Jika kapasitas argumen lebih besar dibandingkan dengan
kapasitas ketika ini, maka kapasitas akan meningkat
dengan (nilai kapasitas usang * 2) + 2.
Sebagai contoh, kalau nilai kapasitas ketika ini ialah 16,
maka akan menjadi (16 * 2) + 2 = 34.
7delete()Menghapus string dari beginIndex (indeks awal) yang
ditentukan hingga dengan endIndex (indeks akhir) yang
ditentukan.



Contoh Penggunaan Method append(), insert(), replace(), dan reverse() Pada StringBuffer

 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
package com.bahasaJava.test_StringBuffer;  public class Test_StringBuffer {    public static void main(String[] args) {         StringBuffer stringBuffer = new StringBuffer("Belajar Java ");      System.out.println(stringBuffer);//Belajar Java      System.out.println();//Baris kosong   System.out.println("Sekarang string ditambah dengan "     + "'Itu Menyenangkan' menjadi:");   System.out.println(stringBuffer.append("Itu Menyenangkan"));      System.out.println();//Baris kosong   System.out.println("Sekarang 'Memang ' dimasukkan "     + "pada indeks 0 menjadi:");   System.out.println(stringBuffer.insert(0, "Memang "));      System.out.println();//Baris kosong   System.out.println("Sekarang 'Masa Sih' menggantikan abjad pada "     + "beginIndex 0 dan endIndex 6 menjadi:");   System.out.println(stringBuffer.replace(0, 6, "Masa Sih"));      System.out.println();//Baris kosong   System.out.println("Sekarang abjad dihapus pada "     + "beginIndex 0 dan endIndex 9 menjadi:");   System.out.println(stringBuffer.delete(0, 9));      System.out.println();//Baris kosong   System.out.println("Sekarang string dibalik menjadi: ");   System.out.println(stringBuffer.reverse());     }  } 


Output:
 1  2  3  4  5  6  7  8  9 10 11 12 13
Belajar Java Itu Menyenangkan  Sekarang 'Memang ' dimasukkan pada indeks 0 menjadi: Memang Belajar Java Itu Menyenangkan  Sekarang 'Masa Sih' menggantikan abjad pada beginIndex 0 dan endIndex 6 menjadi: Masa Sih Belajar Java Itu Menyenangkan  Sekarang abjad dihapus pada beginIndex 0 dan endIndex 9 menjadi: Belajar Java Itu Menyenangkan  Sekarang string dibalik menjadi:  nakgnaneyneM utI avaJ rajaleB 



Contoh memakai method capacity() dan ensureCapacity()


 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
package com.bahasaJava.test_StringBuffer;  public class Test_StringBuffer {    public static void main(String[] args) {         StringBuffer stringBuffer = new StringBuffer();   System.out.println("Kapasitas default adalah:");   System.out.println(stringBuffer.capacity());   System.out.println();      System.out.println("String kini ialah " + stringBuffer.append("Belajar Java1234"));   System.out.println("Kapasitas kini adalah:");   System.out.println(stringBuffer.capacity());   System.out.println();      System.out.println("String kini ialah " + stringBuffer.append("5"));   System.out.println("Kapasitas kini adalah:");   System.out.println(stringBuffer.capacity());//sekarang (16*2)+2=34 atau (nilai kapasitas usang *2) + 2   System.out.println();         stringBuffer.append("6789");   System.out.println("String kini adalah: " + stringBuffer);   System.out.println("Kapasitas kini ialah " + stringBuffer.capacity());//34   System.out.println();         System.out.println("ensureCapacity di set 60");   stringBuffer.ensureCapacity(60);   System.out.println("Kapasitas kini adalah:");   System.out.println(stringBuffer.capacity());//34 * 2 + 2     }  } 

Output:
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17
Kapasitas default adalah: 16  String kini ialah Belajar Java1234 Kapasitas kini adalah: 16  String kini ialah Belajar Java12345 Kapasitas kini adalah: 34  String kini adalah: Belajar Java123456789 Kapasitas kini ialah 34  ensureCapacity di set 60 Kapasitas kini adalah: 70

Belum ada Komentar untuk "Memahami Class Stringbuffer Pada Java"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel