String bukan tipe yang sederhana, tetapi kelas yang digunakan untuk mewakili urutan karakter. Karakter itu sendiri memenuhi standar Unicode, dan ada dua cara untuk menginisialisasi mereka.
Misalnya: salam string = "selamat pagi! /N";
String ucapan = string baru (= "Selamat pagi! /N");
Karakteristik string adalah yang pernah ditetapkan, objek karakter yang ditunjuk tidak dapat diubah.
StringBuffer adalah objek string dengan karakteristik lewat referensi objek.
Objek StringBuffer dapat memanggil metodenya untuk secara dinamis meningkatkan, memasukkan, memodifikasi dan menghapus operasi, dan tidak perlu menentukan ukuran di muka seperti array, untuk mencapai efek memasukkan karakter beberapa kali dan mengeluarkannya pada satu waktu , jadi sangat fleksibel dan nyaman untuk mengoperasikan string.
Setelah string final yang diinginkan dihasilkan melalui StringBuffer, dapat disebut metode ToString untuk mengubahnya menjadi objek String.
Posisi dua kelas dalam pemrosesan string ini terbukti dengan sendirinya. Mari kita jelaskan dari titik -titik berikut
1. Perbandingan keduanya dalam hal kecepatan eksekusi: StringBuffer> String
2.String <StringBuffer Alasan String: String Constant StringBuffer: Variabel Pembuatan Karakter Dari Nama Di Atas, String adalah "Konstanta Pembuatan Karakter", yaitu, objek yang tidak dapat diubah. Anda mungkin memiliki pertanyaan tentang memahami kalimat ini, seperti kode ini:
String S = "ABCD";
Kami jelas mengubah variabel string, mengapa ia mengatakan bahwa itu tidak berubah? Satu objek S digunakan untuk menjalankan baris kode kedua, yang berarti objek S belum berubah sebelumnya, jadi kami mengatakan bahwa tipe string adalah objek yang tidak dapat diubah. Sebenarnya objek baru secara konstan dibuat, dan objek asli akan menjadi sampah dan dikumpulkan oleh GC.
Tetapi stringbuffer berbeda. Kecepatan akan lebih cepat
3. Contoh khusus:
Salinan kode adalah sebagai berikut:
String str = "Ini hanya tes" + "sederhana" + ";
StringBuffer Builder = New StringBuilder ("Ini hanya A"). Append ("Simple"). Append ("Test");
Anda akan terkejut menemukan bahwa kecepatan menghasilkan objek STR terlalu cepat, dan saat ini, StringBuffer tidak memiliki keuntungan dalam kecepatan sama sekali. Sebenarnya, ini adalah trik JVM, pada kenyataannya:
String str = "Ini hanya tes" + "sederhana" + ";
Sebenarnya:
String str = "Ini hanya tes sederhana";
Jadi tidak butuh banyak waktu. Tetapi apa yang harus Anda perhatikan di sini adalah bahwa jika string Anda berasal dari objek string lain, kecepatannya tidak secepat itu, misalnya:
String str2 = "Ini hanya" string str3 = "sederhana";
Pada saat ini, JVM akan melakukannya secara teratur dengan cara aslinya.
4.StringBuilder dan StringBuffer
StringBuilder: StringBuffer yang tidak aman: Safe-thread ketika kita digunakan oleh beberapa utas dalam buffer string, JVM tidak dapat menjamin bahwa pengoperasian StringBuilder aman. . dari. Tentu saja, dalam kebanyakan kasus, kami beroperasi di bawah satu utas, jadi dalam kebanyakan kasus, disarankan untuk menggunakan StringBuilder alih -alih StringBuffer, yang merupakan alasan untuk kecepatan.
Ringkasan Penggunaan Ketiga:
1. Jika Anda ingin mengoperasikan sejumlah kecil data, gunakan = string
2. Operasi sejumlah besar data dalam satu buffer string berulir = StringBuilder
3. Operasikan sejumlah besar data dalam buffer string multi-threaded = StringBuffer