StringBuffer vs StringBuilder
Java adalah bahasa berorientasikan objek yang sangat popular. Di Java, kelas String disediakan untuk menyimpan urutan watak yang tidak dapat diubah (setelah diinisialisasi). Sebagai alternatif, bahasa pengaturcaraan Java menyediakan dua jenis urutan watak yang dapat diubah. Iaitu, apabila pengaturcara perlu mengubah String tertentu (setelah inisialisasi), mereka perlu menggunakan kelas StringBuffer atau kelas StringBuilder, bukan kelas String. StringBuffer diperkenalkan pada JDK 1.0 dan kelas StringBuilder diperkenalkan pada JDK 1.5, sebenarnya sebagai pengganti kelas StringBuffer (untuk persekitaran single-thread).
Apa itu StringBuffer?
Kelas StringBuffer diperkenalkan pada JDK 1.0. Kelas StringBuffer tergolong dalam pakej java.lang dan diwarisi dari java.lang.object generik. Pengaturcara tidak dapat memperluasnya lebih jauh kerana ini adalah kelas akhir. Kelas StringBuffer menerapkan antara muka Serializable, Appendable dan CharSequience. Objek kelas StringBuffer dapat memuatkan urutan watak yang boleh diubah dan selamat untuk utas. Ini bermaksud, sangat mirip dengan objek String, tetapi urutan watak (panjang dan isi) dapat diubah kapan saja setelah menginisialisasi objek StringBuffer. Namun, itu harus dilakukan dengan menggunakan kaedah khusus yang disediakan oleh kelas StringBuffer. Terdapat dua operasi prinsip di kelas StringBuffer. Mereka disediakan dengan kaedah append () dan insert (). Kaedah ini berlebihan,sehingga mereka dapat menerima data dari sebarang jenis seperti bilangan bulat dan panjang. Kedua-dua kaedah pertama mengubah input ke rentetan, dan kemudian menambahkan (menambahkan atau memasukkan) watak rentetan yang sesuai ke objek Stribbuffer yang ada. Kaedah append () menambah rentetan yang diubah ke akhir objek StringBuffer yang ada, sementara kaedah insert () akan menambahkan watak input ke titik penyisipan yang ditentukan.
Apa itu StringBuilder?
Kelas StringBuilder diperkenalkan pada JDK 1.5. StringBuilder API sangat serupa dengan StringBuffer API. Sebenarnya, kelas StringBuilder sebenarnya diperkenalkan sebagai pengganti kelas StringBuffer (untuk aplikasi single-thread). Kelas StringBuilder tergolong dalam pakej java.lang dan diwarisi dari java.lang.object generik. Ini adalah kelas terakhir dan oleh itu pengaturcara tidak dapat memperpanjangnya. Kelas StringBuilder menerapkan antara muka Serializable, Appendable dan CharSequience. Objek kelas StringBuilder dapat menyimpan urutan watak yang boleh diubah tetapi tidak selamat di thread. Ini bermaksud, sangat mirip dengan objek String, tetapi rentetan dapat diubah kapan saja. Tetapi kelas StringBuilder tidak menyediakan penyegerakan, dan oleh itu diklaim lebih pantas daripada menggunakan kelas StringBuffer. Kelas StringBuilder menyediakan kaedah append () dan insert () dengan fungsi yang hampir sama seperti di kelas StringBuffer.
Apakah perbezaan antara StringBuffer dan StringBuilder?
Walaupun, kelas StringBuilder dan StringBuffer dapat digunakan untuk urutan watak yang dapat diubah di Java, mereka mempunyai perbezaan utama. Tidak seperti kelas StringBuffer, kelas StringBuilder tidak selamat untuk thread, dan tidak menyediakan penyegerakan. Oleh itu, disarankan agar kelas StringBuilder digunakan sebagai ganti kelas StringBuffer dalam aplikasi single-thread, kerana didakwa bahawa kelas StringBuilder akan jauh lebih cepat daripada kelas StringBuffer (dalam keadaan biasa).