Carta Perbandingan
Asas untuk Perbandingan | Tali | StringBuffer |
---|---|---|
Asas | Panjang objek String ditetapkan. | Panjang StringBuffer dapat ditingkatkan. |
Pengubahsuaian | Objek rentetan tidak berubah. | Objek StringBuffer boleh berubah. |
Prestasi | Ia lebih perlahan semasa penggabungan. | Ia lebih cepat semasa penggabungan. |
Memori | Memori lebih banyak. | Memakan kurang ingatan. |
Penyimpanan | Kolam berterusan tali. | Memori Heap. |
Definisi String
"String" adalah kelas di Jawa. Objek kelas String adalah panjang tetap, dan yang paling penting untuk diingat, objek kelas String adalah "tidak berubah". Sebaik sahaja anda memulakan objek String, anda tidak boleh mengubah suai objek itu lagi. Objek kelas String disimpan dalam kolam berterusan String.
Mari kita mula-mula memahami bahawa, apabila anda membuat apa-apa rentetan; anda membuat objek rentetan jenis. Pemalar rentetan juga objek rentetan.
System.out.println ("Hello this is Teckpix Solution");
Dalam pernyataan di atas, rentetan "Hello ini adalah Teckpix Solution" adalah pemalar String.
Sekarang marilah kita faham mutabilitas objek String dengan bantuan contoh.
String str = String baru ("Teckpix"); str.concat ("Penyelesaian"); system.out.println (str); // output Teckpix
Dalam kod di atas, saya cuba menggabungkan kedua-dua rentetan "Teckpix" dan "Penyelesaian". Seperti yang kita tahu setiap kali rentetan dibuat, bermakna objek jenis String dibuat. Oleh itu, rentetan "Teckpix" mencipta objek, yang rujukannya diberikan kepada objek rentetan "str". Seterusnya, saya cuba menggabungkan rentetan "Penyelesaian" rentetan dengan "Teckpix" rentetan menggunakan kaedah "concat ()" kelas String.
Definisi StringBuffer
Kelas "StringBuffer" adalah kelas sebaya kelas "String". StringBuffer kelas menyediakan lebih banyak fungsi pada rentetan. Objek kelas StringBuffer boleh berubah yang objeknya boleh diubah suai. Panjang objek StringBuffer boleh dibesar-besarkan. Anda boleh memasukkan aksara atau substrings di tengah rentetan literal yang diberikan kepada objek StringBuffer atau pada akhirnya. StringBuffer memperuntukkan ruang untuk 16 aksara tambahan apabila tiada tempoh spesifik diperlukan.
Marilah kita faham mutabilitas objek StringBuffer dengan bantuan contoh:
StringBuffre Sb = StringBuffer baru ("Teckpix"); Sb.append ("Penyelesaian"); system.out.println (Sb); // Penyelesaian Teckpix Solution
Seperti yang kita tahu bahawa objek StringBuffer boleh berubah. Kaedah menambahkan () mengubah objek StringBuffer Sb yang pada mulanya, rujukan objek "Teckpix" ditugaskan sebelum ini. Kaedah append () menambahkan rentetan baru "Penyelesaian" literal, hingga akhir rentetan literal "Teckpix". Sekarang apabila saya mencetak objek Sb, ia akan mencetak objek rentetan diubahsuai "Teckpix Solutions".
Perbezaan Utama Antara String dan StringBuffer
- Panjang objek String tetap tetapi panjang objek StringBuffer dapat ditingkatkan apabila diperlukan.
- Objek rentetan tidak berubah sama ada objek itu tidak dapat ditugaskan semula sedangkan objek StringBuffer boleh berubah.
- Objek rentetan perlahan dalam prestasi sedangkan, objek StringBuffer lebih cepat.
- Objek rentetan menggunakan lebih banyak memori sedangkan, objek StringBuffer menggunakan memori yang kurang.
- Objek rentetan disimpan dalam kolam malar sedangkan, objek StringBuffer disimpan pada memori timbunan.
Kesimpulan:
Objek StringBuffer memberikan lebih banyak fungsi kepada rentetan berbanding dengan kelas String. Oleh itu, adalah lebih baik untuk bekerja dengan StringBuffer dan bukannya String kelas.