Direkomendasikan, 2024

Pilihan Editor

Perbedaan Antara String dan StringBuffer Class di Jawa

String dan StringBuffer keduanya adalah kelas yang beroperasi pada string. Kelas StringBuffer adalah kelas rekan dari String kelas. Objek kelas String memiliki panjang tetap. Objek dari kelas StringBuffer dapat ditumbuhkan. Perbedaan mendasar antara String dan StringBuffer adalah bahwa objek dari kelas "String" tidak dapat diubah . Objek kelas "StringBuffer" bisa berubah .

Grafik perbandingan

Dasar untuk PerbandinganTaliStringBuffer
DasarPanjang objek String tetap.Panjang StringBuffer dapat ditingkatkan.
ModifikasiObjek string tidak berubah.Objek StringBuffer bisa berubah.
PerformaItu lebih lambat selama penggabungan.Lebih cepat selama penggabungan.
IngatanMembutuhkan lebih banyak memori.Mengonsumsi lebih sedikit memori.
PenyimpananString pool konstan.Tumpukan Memori.

Definisi String

"String" adalah kelas di Jawa. Objek String kelas memiliki panjang tetap, dan yang paling penting untuk diingat, objek kelas String adalah "tidak berubah". Setelah Anda menginisialisasi objek String, Anda tidak dapat memodifikasi objek itu lagi. Objek String kelas disimpan dalam string konstan pool.

Mari kita pahami dulu, kapan pun Anda membuat string apa pun; Anda membuat objek tipe string. Konstanta string juga merupakan objek string.

 System.out.println ("Halo ini Solusi Teckpix"); 

Dalam pernyataan di atas, string "Halo ini adalah Solusi Teckpix" adalah konstanta String.

Sekarang, mari kita pahami mutabilitas objek String dengan bantuan contoh.

 String str = String baru ("Teckpix"); str.concat ("Solusi"); system.out.println (str); // output Teckpix 

Dalam kode di atas, saya mencoba menggabungkan dua string "Teckpix" dan "Solution". Seperti yang kita ketahui setiap kali string dibuat itu berarti objek tipe String dibuat. Oleh karena itu, string "Teckpix" membuat objek, yang referensinya ditetapkan ke objek string "str". Selanjutnya, saya mencoba untuk menggabungkan string lain "Solusi" dengan string "Teckpix" menggunakan metode "concat ()" dari String kelas.

Karena objek String tidak dapat diubah, tidak ada modifikasi yang dilakukan pada string "Teckpix" dan string baru "Solusi" membuat objek lain dalam kumpulan string konstan. Namun, referensi ke objek "Solusi" tidak ditangkap oleh objek apa pun sehingga referensi ke objek Solusi hilang meskipun masih ada dalam kumpulan string konstan. Karena tidak ada modifikasi yang dilakukan pada objek Teckpix, ketika saya mencetak objek str yang saya berikan referensi Teckpix sebelumnya, akan mencetak string "Teckpix" saja.

Definisi StringBuffer

Kelas "StringBuffer" adalah kelas sebaya dari kelas "String". Kelas StringBuffer menyediakan lebih banyak fungsionalitas ke string. Objek kelas StringBuffer bisa berubah yang objeknya dapat dimodifikasi. Panjang objek StringBuffer bisa ditumbuhkan. Anda bisa menyisipkan karakter atau substring di tengah string literal yang ditugaskan ke objek StringBuffer atau di ujungnya. StringBuffer mengalokasikan ruang untuk 16 karakter tambahan ketika tidak ada panjang spesifik yang diminta.

Mari kita memahami mutabilitas objek StringBuffer dengan bantuan contoh:

 StringBuffre Sb = StringBuffer baru ("Teckpix"); Sb.append ("Solusi"); system.out.println (Sb); // Keluaran Solusi Teckpix 

Seperti yang kita ketahui bahwa objek StringBuffer bisa berubah. Metode append () memodifikasi objek StringBuffer Sb yang awalnya, referensi objek "Teckpix" ditugaskan sebelumnya. Metode append () menambahkan string literal baru "Solusi", hingga akhir string literal "Teckpix". Sekarang ketika saya mencetak objek Sb itu akan mencetak objek string yang dimodifikasi "Teckpix Solutions".

Perbedaan Kunci Antara String dan StringBuffer

  1. Panjang objek String tetap tetapi panjang objek StringBuffer dapat ditingkatkan saat diperlukan.
  2. Objek string tidak dapat diubah yaitu objek itu tidak dapat dipindahkan kembali sedangkan, objek StringBuffer bisa berubah.
  3. Objek string lebih lambat dalam kinerja sedangkan, objek StringBuffer lebih cepat.
  4. Objek string mengkonsumsi lebih banyak memori sedangkan, objek StringBuffer mengkonsumsi lebih sedikit memori.
  5. Objek string disimpan dalam kumpulan konstan sedangkan, objek StringBuffer disimpan pada memori tumpukan.

Kesimpulan:

Objek StringBuffer memberikan fungsionalitas lebih ke string dibandingkan dengan String kelas. Oleh karena itu, lebih baik bekerja dengan StringBuffer daripada String kelas.

Top