Perbezaan Antara StringBuffer dan StringBuilder

Perbezaan Antara StringBuffer dan StringBuilder
Perbezaan Antara StringBuffer dan StringBuilder

Video: Perbezaan Antara StringBuffer dan StringBuilder

Video: Perbezaan Antara StringBuffer dan StringBuilder
Video: Bagaimana Konflik Ketegangan Rusia Dan Ukraine Boleh Berlaku 2024, Julai
Anonim

StringBuffer lwn StringBuilder

Java ialah bahasa berorientasikan objek yang sangat popular. Di Java, kelas String disediakan untuk menyimpan urutan aksara yang tidak boleh diubah suai (sekali dimulakan). Sebagai alternatif, bahasa pengaturcaraan Java menyediakan dua jenis urutan aksara yang boleh berubah. Iaitu, apabila pengaturcara perlu mengubah suai String tertentu (selepas permulaan), mereka perlu menggunakan kelas StringBuffer atau kelas StringBuilder, bukannya kelas String. StringBuffer telah diperkenalkan dalam JDK 1.0 dan kelas StringBuilder telah diperkenalkan dalam JDK 1.5, sebenarnya sebagai pengganti kelas StringBuffer (untuk persekitaran single-thread).

Apakah StringBuffer?

Kelas StringBuffer telah diperkenalkan dalam JDK 1.0. Kelas StringBuffer tergolong dalam pakej java.lang dan diwarisi daripada java.lang.object generik. Pengaturcara tidak boleh melanjutkannya lagi kerana Ia adalah kelas akhir. Kelas StringBuffer melaksanakan antara muka Serializable, Appendable dan CharSequience. Objek kelas StringBuffer boleh menyimpan jujukan aksara yang boleh diubah dan selamat untuk benang. Ini bermakna, ia sangat mirip dengan objek String, tetapi urutan aksara (panjang dan kandungan) boleh diubah pada bila-bila masa selepas memulakan objek StringBuffer. Walau bagaimanapun, itu harus dilakukan menggunakan kaedah khusus yang disediakan oleh kelas StringBuffer. Terdapat dua operasi prinsip dalam kelas StringBuffer. Ia disediakan oleh kaedah append() dan insert(). Kaedah ini terlebih beban, jadi mereka boleh menerima data apa-apa jenis seperti integer dan panjang. Kedua-dua kaedah mula-mula mengubah sebarang input kepada rentetan, dan kemudian menambah (menambah atau memasukkan) aksara rentetan yang sepadan dengan objek Stribbuffer sedia ada. Kaedah append() menambah rentetan ditukar ke penghujung objek StringBuffer sedia ada, manakala kaedah insert() akan menambah aksara input pada titik sisipan yang ditentukan.

Apakah StringBuilder?

KelasStringBuilder telah diperkenalkan dalam JDK 1.5. API StringBuilder sangat serupa dengan API StringBuffer. Malah, kelas StringBuilder sebenarnya telah diperkenalkan sebagai pengganti kelas StringBuffer (untuk aplikasi single-thread). Kelas StringBuilder tergolong dalam pakej java.lang dan diwarisi daripada java.lang.object generik. Ia adalah kelas akhir dan oleh itu pengaturcara tidak boleh melanjutkannya. Kelas StringBuilder melaksanakan antara muka Serializable, Appendable dan CharSequience. Objek kelas StringBuilder boleh menyimpan jujukan aksara yang boleh diubah tetapi tidak selamat untuk benang. Ini bermakna, ia sangat mirip dengan objek String, tetapi rentetan boleh ditukar pada bila-bila masa. Tetapi kelas StringBuilder tidak menyediakan penyegerakan, dan oleh itu didakwa lebih pantas daripada menggunakan kelas StringBuffer. Kelas StringBuilder menyediakan kaedah append() dan insert() dengan fungsi yang sama seperti dalam kelas StringBuffer.

Apakah perbezaan antara StringBuffer dan StringBuilder?

Walaupun, kelas StringBuilder dan StringBuffer boleh digunakan untuk jujukan aksara yang boleh diubah dalam Java, ia mempunyai perbezaan utama. Tidak seperti kelas StringBuffer, kelas StringBuilder tidak selamat untuk benang dan tidak menyediakan penyegerakan. Oleh itu, adalah disyorkan bahawa kelas StringBuilder harus digunakan sebagai ganti kelas StringBuffer dalam aplikasi satu utas, kerana kelas StringBuilder didakwa akan jauh lebih pantas daripada kelas StringBuffer (dalam keadaan biasa).

Disyorkan: