StringBuffer vs StringBuilder
Java adalah bahasa berorientasi objek yang sangat populer. Di Java, kelas String disediakan untuk menampung urutan karakter yang tidak dapat dimodifikasi (setelah diinisialisasi). Atau, bahasa pemrograman Java menyediakan dua jenis urutan karakter yang dapat diubah. Artinya, ketika programmer perlu memodifikasi String tertentu (setelah inisialisasi), mereka perlu menggunakan kelas StringBuffer atau kelas StringBuilder, bukan kelas String. StringBuffer diperkenalkan di JDK 1.0 dan kelas StringBuilder diperkenalkan di JDK 1.5, sebenarnya sebagai pengganti kelas StringBuffer (untuk lingkungan single-thread).
Apa itu StringBuffer?
Kelas StringBuffer diperkenalkan di JDK 1.0. Kelas StringBuffer termasuk dalam paket java.lang dan diwarisi dari objek java.lang. Pemrogram tidak dapat memperluasnya lebih jauh karena Ini adalah kelas terakhir. Kelas StringBuffer mengimplementasikan antarmuka Serializable, Appendable, dan CharSequience. Sebuah objek dari kelas StringBuffer dapat menyimpan urutan karakter yang bisa berubah dan thread-safe. Artinya, sangat mirip dengan objek String, tetapi urutan karakter (panjang dan konten) dapat diubah kapan saja setelah menginisialisasi objek StringBuffer. Namun, itu harus dilakukan dengan menggunakan metode khusus yang disediakan oleh kelas StringBuffer. Ada dua prinsip operasi di kelas StringBuffer. Mereka disediakan oleh metode append() dan insert(). Metode ini kelebihan beban, sehingga mereka dapat menerima data jenis apa pun seperti bilangan bulat dan panjang. Kedua metode pertama-tama mengubah input apa pun menjadi string, dan kemudian menambahkan (menambahkan atau menyisipkan) karakter string yang sesuai ke objek Stribbuffer yang ada. Metode append() menambahkan string yang dikonversi ke akhir objek StringBuffer yang ada, sedangkan metode insert() akan menambahkan karakter input ke titik penyisipan yang ditentukan.
Apa itu StringBuilder?
Kelas StringBuilder diperkenalkan di JDK 1.5. StringBuilder API sangat mirip dengan StringBuffer API. Sebenarnya, kelas StringBuilder sebenarnya diperkenalkan sebagai pengganti kelas StringBuffer (untuk aplikasi single-thread). Kelas StringBuilder milik paket java.lang dan diwarisi dari java.lang.object generik. Ini adalah kelas terakhir sehingga pemrogram tidak dapat memperluasnya. Kelas StringBuilder mengimplementasikan antarmuka Serializable, Appendable, dan CharSequience. Objek dari kelas StringBuilder dapat menyimpan urutan karakter yang dapat diubah tetapi tidak aman untuk thread. Artinya, sangat mirip dengan objek String, tetapi string dapat diubah kapan saja. Tetapi kelas StringBuilder tidak menyediakan sinkronisasi, dan oleh karena itu diklaim lebih cepat daripada menggunakan kelas StringBuffer. Kelas StringBuilder menyediakan metode append() dan insert() dengan fungsionalitas yang sama persis seperti di kelas StringBuffer.
Apa perbedaan antara StringBuffer dan StringBuilder?
Meskipun, kelas StringBuilder dan StringBuffer dapat digunakan untuk urutan karakter yang dapat diubah di Java, mereka memiliki perbedaan utama. Tidak seperti kelas StringBuffer, kelas StringBuilder tidak thread-safe, dan tidak menyediakan sinkronisasi. Oleh karena itu, disarankan agar kelas StringBuilder digunakan sebagai pengganti kelas StringBuffer dalam aplikasi single-thread, karena diklaim bahwa kelas StringBuilder akan jauh lebih cepat daripada kelas StringBuffer (dalam keadaan normal).