Perbedaan Dan Perbandingan Antara String, Stringbuffer Dan Stringbuilder
Jika anda mempelajari bahasa pemrograman Java, niscaya anda sering bertemu dengan pernyataan System.out.println() untuk menampilkan sesuatu pada konsol memakai String.
Sebagai salah satu class yang terpenting, String yakni selesai dan immutable pada Java. Setiap modifikasi yang dilakukan pada String akan menciptakan objek baru.
Misalkan saat anda mengubah String karakter kapital menjadi karakter kecil, atau mengambil substring, atau bahkan saat menghilangkan spasi, maka objek String yang gres akan dibuat.
Hasilnya yakni banyak objek sampah atau 'garbage' dari String yang tidak digunakan.
Makara bagaimana solusinya untuk memanipulasi string dalam Java tanpa harus menghasilkan String garbage?
Untungnya Java mempunyai 2 class yang sanggup dipakai untuk tujuan tersebut yaitu StringBuffer dan StringBuilder.
StringBuffer yakni class yang sanggup dibilang sudah usang ada pada Java, namun StringBuilder ini relatif class gres yang hadir semenjak JDK 5.
Banyak pengoperasian string yang menghasilkan garbage sementara (temporary) pada heap, ibarat merangkaikan string, mengubah atau konversi menjadi karakter kecil atau karakter besar, mengambil substring dari suatu string dan lain sebagainya.
Jika string dibentuk dengan memakai literal, maka string-string tersebut akan tinggal di dalam string pool.
Dikarenakan StringBuffer ini tidak immutable maka anda sanggup memodifikasi objek StringBuffer tersebut tanpa menciptakan objek gres yang tidak diperlukan.
Oleh alasannya yakni itu StringBuffer sanggup menjadi pilihan yang sempurna saat memerlukan banyak modifikasi pada String.
Sementara itu untuk mengkonversi dari StringBuffer menjadi String sanggup memakai method toString().
Untuk mengatasi hal ini, pada JDK 5 dihadirkanlah class StringBuilder. Class ini serupa dengan StringBuffer namun tidak disinkronisasi. Ketika memungkinkan, memakai StringBuilder akan memperoleh performa yang lebih baik jikalau dibandingkan dengan memakai StringBuilder.
StringBuffer dan StringBuilder yakni class yang benar-benar serupa, sehingga method yang dimiliki StringBuffer pada Java API sanggup juga dipakai pada StringBuilder.
Operator concat '+' dipakai untuk merangkaikan dua string dan secara internal juga diimplementasikan untuk StringBuffer dan StringBuilder.
Di sisi lainnya, terdapat perbedaan signifikan antara StringBuffer dan StringBuilder ibarat berikut ini.
Sebagai salah satu class yang terpenting, String yakni selesai dan immutable pada Java. Setiap modifikasi yang dilakukan pada String akan menciptakan objek baru.
Misalkan saat anda mengubah String karakter kapital menjadi karakter kecil, atau mengambil substring, atau bahkan saat menghilangkan spasi, maka objek String yang gres akan dibuat.
Hasilnya yakni banyak objek sampah atau 'garbage' dari String yang tidak digunakan.
Makara bagaimana solusinya untuk memanipulasi string dalam Java tanpa harus menghasilkan String garbage?
Untungnya Java mempunyai 2 class yang sanggup dipakai untuk tujuan tersebut yaitu StringBuffer dan StringBuilder.
StringBuffer yakni class yang sanggup dibilang sudah usang ada pada Java, namun StringBuilder ini relatif class gres yang hadir semenjak JDK 5.
Masalah Dengan String Pada Java
Salah satu kekuatan String yaitu immutable, sanggup juga menjadi duduk kasus terbesar jikalau tidak dipakai dengan benar.Banyak pengoperasian string yang menghasilkan garbage sementara (temporary) pada heap, ibarat merangkaikan string, mengubah atau konversi menjadi karakter kecil atau karakter besar, mengambil substring dari suatu string dan lain sebagainya.
Jika string dibentuk dengan memakai literal, maka string-string tersebut akan tinggal di dalam string pool.
Perbedaan Antara String dan StringBuffer
Perbedaan utama antara String dan StringBuffer yakni dari segi immutability. Dimana String yakni immutable dan StringBuffer tidak immutable.Dikarenakan StringBuffer ini tidak immutable maka anda sanggup memodifikasi objek StringBuffer tersebut tanpa menciptakan objek gres yang tidak diperlukan.
Oleh alasannya yakni itu StringBuffer sanggup menjadi pilihan yang sempurna saat memerlukan banyak modifikasi pada String.
Sementara itu untuk mengkonversi dari StringBuffer menjadi String sanggup memakai method toString().
Perbedaan Antara StringBuffer dan StringBuilder
StringBuffer sangat baik saat bekerja dengan mutable String. Namun, kekurangannya yakni semua public method yang dimilikinya disinkronisasi sehingga menciptakan StringBuffer ini menjadi thread safe tapi juga sanggup menjadi sangat lambat.Untuk mengatasi hal ini, pada JDK 5 dihadirkanlah class StringBuilder. Class ini serupa dengan StringBuffer namun tidak disinkronisasi. Ketika memungkinkan, memakai StringBuilder akan memperoleh performa yang lebih baik jikalau dibandingkan dengan memakai StringBuilder.
StringBuffer dan StringBuilder yakni class yang benar-benar serupa, sehingga method yang dimiliki StringBuffer pada Java API sanggup juga dipakai pada StringBuilder.
Operator concat '+' dipakai untuk merangkaikan dua string dan secara internal juga diimplementasikan untuk StringBuffer dan StringBuilder.
Di sisi lainnya, terdapat perbedaan signifikan antara StringBuffer dan StringBuilder ibarat berikut ini.
StringBuffer | StringBuilder |
---|---|
Thread safe | Tidak Thread safe |
Disinkronisasi | Tidak disinkronisasi |
Lebih lambat jikalau dibandingkan dengan StringBuilder | Lebih cepat jikalau dibandingkan dengan StringBuffer |
Kesimpulan
Dari beberapa poin-poin diatas sanggup disimpulkan sebagai berikut:- Objek String yakni immutable sedangankan StringBuffer dan StringBuilder tidak immutable pada Java.
- StringBuilder mempunyai performa yang lebih cepat daripada StringBuffer alasannya yakni tidak disinkronisasi
- Operator concat '+' diterapkan secara internal baik oleh StringBuffer ataupun StringBuilder
- String dipakai jikalau memerlukan immutability, StringBuffer dipakai saat memerlukan mutability dan thread safe, dan gunakan StringBuilder saat membutuhkan mutability tanpa thread safe.
Belum ada Komentar untuk "Perbedaan Dan Perbandingan Antara String, Stringbuffer Dan Stringbuilder"
Posting Komentar