String yang disediakan oleh kelas StringBuffer ini telah dimodifikasi. Anda dapat menggunakan StringBuffer ketika Anda mengetahui data karakter akan berubah. Biasanya, Anda menggunakan StringBuffers untuk membuat data karakter secara dinamis.
Ada tiga kelas di Java yang bertanggung jawab atas operasi karakter.
1.Karakter beroperasi pada satu karakter.
2.String beroperasi pada serangkaian karakter. Kelas yang tidak dapat diubah.
3.StringBuffer juga beroperasi pada string karakter, tetapi merupakan kelas variabel.
Rangkaian:
Itu adalah objek dan bukan tipe primitif.
Ini adalah objek yang tidak dapat diubah, setelah dibuat, nilainya tidak dapat diubah.
Modifikasi apa pun pada objek String yang sudah ada melibatkan pembuatan ulang objek baru dan kemudian menyimpan nilai baru ke dalamnya.
String adalah kelas final, artinya tidak dapat diwariskan.
Penyangga String:
Ini adalah objek yang bisa berubah. Ketika dimodifikasi, objek tidak akan dibuat kembali seperti String.
StringBuffer sb = StringBuffer baru();
catatan: Tidak dapat dibayar melalui simbol pembayaran.
sb = "selamat datang di sini!";//error
Setelah objek dibuat, ruang memori akan dialokasikan di memori dan null awalnya akan disimpan Ke StringBuffer
Saat membayar nilainya, Anda dapat menggunakan metode penambahannya.
sb.append("halo");
Di atas adalah kutipan yang umum di Internet, berikut ini adalah tambahan wawasan saya:
Alamatnya tidak bisa diubah, tapi panjang dan isinya bisa diubah. Metode append() adalah menambahkan. Ketika memori yang dicadangkan terlampaui, memori menjadi dua kali lipat.
Perbandingan efisiensi: StringBuffer lebih tinggi dari String. Karena StringBuffer telah memesan ruang dan terus menambahkan, ia hanya beroperasi pada satu objek. String tidak dapat dimodifikasi, dan objek hanya dapat dibuat berulang kali untuk mencapai modifikasi. ――Jika Anda sering menambahkan, mengganti, memodifikasi, menyisipkan, atau menghapus string, sebaiknya gunakan StringBuffer. Jika Anda harus menggunakan String, Anda dapat menggunakan StringBuffer untuk memanggil toString() untuk mengubahnya menjadi String.
Mesin saya cukup sampah, dan hasil setelah dijalankan adalah:
Waktu berjalan string: 164593
------------------------------
Waktu berjalan StringBuffer: 31
Selain itu, String memiliki metode berisi, tetapi StringBuffer tidak. Berisi berarti termasuk. Di sini Anda dapat mengingat metode berisi.
Hasil eksekusinya adalah
BENAR