Kumb on parem StringBuffer või StringBuilder?
Kumb on parem StringBuffer või StringBuilder?

Video: Kumb on parem StringBuffer või StringBuilder?

Video: Kumb on parem StringBuffer või StringBuilder?
Video: Liina VS Gethel - Kumb on parem girlfriend! 2024, Mai
Anonim

String on muutumatu, samas kui StringBuffer ja StringBuider on muudetavad klassid. StringBuffer on niidikindel ja sünkroniseeritud, samas StringBuilder ei ole, sellepärast StringBuilder on kiirem kui StringBuffer . String concat + operaator kasutab sisemiselt StringBuffer või StringBuilder klass.

Vastavalt sellele, kumb on parem StringBuffer või StringBuilder?

Tulemusena, StringBuilder on kiirem kui StringBuffer . StringBuffer on muutuv. See võib muutuda pikkuse ja sisu poolest. StringBuffers on lõimekindlad, mis tähendab, et neil on sünkroonitud meetodid juurdepääsu kontrollimiseks nii, et ainult üks lõimele pääseb juurde a StringBuffer objekti sünkroonitud kood korraga.

Samamoodi, miks on StringBuffer aeglasem kui StringBuilder? Läbi loodud objekt StringBuffer hoitakse hunnikus. StringBuffer on samad meetodid kui StringBuilder , kuid iga meetod StringBuffer on sünkroniseeritud, see tähendab StringBuffer on niidikindel. Seega StringBuilder on kiirem kui a StringBuffer iga klassi samu meetodeid kutsudes.

Mis vahe on StringBufferil ja StringBuilderil?

StringBuilder . StringBuilder on sama mis StringBuffer , see tähendab, et see salvestab objekti hunnikusse ja seda saab ka muuta. Peamine vahet a StringBuffer ja StringBuilder on see StringBuilder ei ole niidikindel. StringBuilder on kiire, kuna pole niidikindel.

Millal peaksin kasutama StringBufferit?

Kui objekti väärtus võib muutuda ja sellele pääseb juurde ainult ühest lõimest, kasutada StringBuilder, kuna StringBuilder on sünkroonimata. Kui objekti väärtus võib muutuda ja seda muudetakse mitme lõimega, kasutada a StringBuffer sest StringBuffer on sünkroonitud.

Soovitan: