Perbezaan antara StringBuffer dan StringBuilder

Perbezaan antara StringBuffer dan StringBuilder

StringBuffer vs StringBuilder

Java adalah bahasa berorientasikan objek yang sangat popular. Di Java, kelas rentetan disediakan untuk memegang urutan aksara yang tidak dapat diubah suai (sekali dimulakan). Sebagai alternatif, bahasa pengaturcaraan Java menyediakan dua jenis urutan aksara yang boleh berubah. Ia. StringBuffer diperkenalkan di JDK 1.0 dan Kelas StringBuilder diperkenalkan di JDK 1.5, sebenarnya sebagai pengganti kelas StringBuffer (untuk persekitaran tunggal-thread).

Apa itu StringBuffer?

Kelas StringBuffer diperkenalkan di JDK 1.0. Kelas StringBuffer milik Java.pakej lang dan diwarisi dari java generik.lang.objek. Pengaturcara tidak dapat melanjutkannya kerana ia adalah kelas akhir. Kelas StringBuffer Melaksanakan Serializable, Appendan dan Charequience Interfaces. Objek stringbuffer kelas boleh memegang urutan aksara yang boleh dimalukan dan selamat thread. Maksudnya, ia sangat serupa dengan objek rentetan, tetapi urutan aksara (panjang dan kandungan) dapat diubah pada bila -bila masa setelah memulakan objek StringBuffer. Walau bagaimanapun, yang perlu dilakukan menggunakan kaedah khusus yang disediakan oleh kelas StringBuffer. Terdapat dua operasi prinsip dalam kelas StringBuffer. Mereka disediakan dengan kaedah tambahan () dan memasukkan (). Kaedah ini dibebankan, jadi mereka dapat menerima data dari mana -mana jenis seperti integer dan panjang. Kedua -dua kaedah terlebih dahulu mengubah sebarang input ke rentetan, dan kemudian menambah (menambahkan atau memasukkan) aksara rentet. Kaedah append () menambah rentetan yang ditukar ke hujung objek stringbuffer sedia ada, manakala kaedah memasukkan () akan menambah aksara input ke titik sisipan yang ditentukan.

Apa itu StringBuilder?

Kelas StringBuilder diperkenalkan di JDK 1.5. API StringBuilder sangat serupa dengan API StringBuffer. Malah, kelas StringBuilder sebenarnya diperkenalkan sebagai pengganti kelas StringBuffer (untuk aplikasi tunggal-thread). Kelas StringBuilder milik Java.pakej lang dan diwarisi dari java generik.lang.objek. Ia adalah kelas akhir dan oleh itu pengaturcara tidak dapat memanjangkannya. Kelas StringBuilder Melaksanakan Serializable, Appendan dan Charequience Interfaces. Objek Kelas Stringbuilder dapat memegang urutan aksara yang boleh dimainkan tetapi tidak selamat thread. Maksudnya, ia sangat mirip dengan objek rentetan, tetapi rentetan boleh diubah pada bila -bila masa. Tetapi kelas StringBuilder tidak memberikan penyegerakan, dan oleh itu dikatakan lebih cepat daripada menggunakan kelas StringBuffer. Kelas StringBuilder menyediakan kaedah tambahan () dan memasukkan () dengan fungsi yang sama seperti dalam kelas StringBuffer.

Apakah perbezaan antara StringBuffer dan StringBuilder?

Walaupun, kelas StringBuilder dan StringBuffer boleh digunakan untuk urutan aksara yang boleh berubah di Java, mereka mempunyai perbezaan utama. Tidak seperti kelas StringBuffer, kelas StringBuilder tidak selamat thread, dan tidak memberikan penyegerakan. Oleh itu, disyorkan bahawa kelas StringBuilder harus digunakan sebagai pengganti kelas StringBuffer dalam aplikasi tunggal-thread, kerana ia mendakwa bahawa kelas StringBuilder akan jauh lebih cepat daripada kelas StringBuffer (di bawah keadaan biasa).