String, StringBuffer, dan StringBuilder di Java adalah kelas string yang sering digunakan dalam pemrograman. Singkatnya, lihat perbedaan mereka dan sama.
1. Variabel dan tidak berubah
Kelas string menggunakan array karakter untuk menyimpan string.
Nilai arang akhir pribadi [];
Baik StringBuilder dan StringBuffer diwarisi dari kelas AbstractStringBuilder.
nilai char [];
2. Apakah aman?
Objek dalam string tidak dapat diubah, yang dapat dipahami sebagai konstan, jelas utas aman.
AbstractStringBuilder adalah kelas induk publik antara StringBuilder dan StringBuffer, mendefinisikan operan dasar dari beberapa string, seperti ExpandCapacity, Append, Insert, IndexOF dan Metode Publik lainnya.
StringBuffer menambahkan kunci sinkron atau metode panggilan ditambahkan ke metode, jadi utas -Safe. Lihat kode sumber berikut:
Salin kode kode sebagai berikut:
Public Synchronized StringBuffer Reverse () {{) {
Super.reverse ();
Kembalikan ini;
}
indeks int int publik (string str) {
Return Indexof (Str, 0);
}
StringBuilder tidak memiliki kunci sinkron pada metode ini, jadi itu adalah keamanan yang tidak beracun.
3. StringBuilder dan StringBuffer kesamaan
StringBuilder dan StringBuffer memiliki orang tua publik -Class AbstractStringBuilder (kelas abstrak).
Salah satu perbedaan antara kelas dan antarmuka abstrak adalah: beberapa metode publik dari beberapa subkelas dapat didefinisikan dalam kelas abstrak. dari metode dalam antarmuka.
Metode StringBuilder dan StringBuffer semua memanggil metode publik di AbstractStringBuilder, seperti Super.Appening (...). Hanya saja StringBuffer akan menambahkan kata kunci yang disinkronkan ke metode untuk disinkronkan.
Akhirnya, jika program ini tidak multi -ulir, efisiensi menggunakan StringBuilder lebih tinggi dari StringBuffer.