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.
Namun sebelumnya, untuk mengingat kembali dengan gampang mengapa String itu immutable, lihat baris isyarat berikut:
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:
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:
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).
Berikut ini ialah perbedaan fundamental antara StringBuffer dan String yang perlu untuk diketahui:
Contoh Penggunaan Method append(), insert(), replace(), dan reverse() Pada StringBuffer
Output:
Contoh memakai method capacity() dan ensureCapacity()
Output:
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:
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:
No | StringBuffer | String |
---|---|---|
1 | Class mutable | Class immutable |
2 | StringBuffer 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. |
3 | Class 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:No | Method | Penjelasan |
---|---|---|
1 | append() | Merangkaikan argumen yang diberikan dengan string terkait |
2 | insert() | Memasukkan string yang diberikan pada suatu string diposisi tertentu |
3 | reverse() | Membalikkan string |
4 | replace() | Mengganti string dari beginIndex dan endIndex tertentu |
5 | capacity() | 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 |
6 | ensureCapacity() | 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. |
7 | delete() | 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