Alin ang mas mahusay na StringBuffer o StringBuilder?
Alin ang mas mahusay na StringBuffer o StringBuilder?

Video: Alin ang mas mahusay na StringBuffer o StringBuilder?

Video: Alin ang mas mahusay na StringBuffer o StringBuilder?
Video: 20 Essential Excel Functions with Downloadable Reference Guide 2024, Mayo
Anonim

Ang string ay hindi nababago samantalang StringBuffer at ang StringBuider ay mga nababagong klase. StringBuffer ay ligtas at naka-synchronize ang thread samantalang StringBuilder ay hindi, kaya nga StringBuilder ay mas mabilis kaysa sa StringBuffer . Ang string concat + operator ay panloob na gumagamit StringBuffer o StringBuilder klase.

Kaugnay nito, alin ang mas mahusay na StringBuffer o StringBuilder?

Ang resulta, StringBuilder ay mas mabilis kaysa sa StringBuffer . StringBuffer ay nababago. Maaari itong magbago sa mga tuntunin ng haba at nilalaman. StringBuffers ay ligtas sa thread, ibig sabihin, mayroon silang mga naka-synchronize na pamamaraan para makontrol ang pag-access upang iyon lamang isa maaaring ma-access ng thread a StringBuffer naka-synchronize na code ng object sa isang pagkakataon.

Katulad nito, bakit ang StringBuffer ay mas mabagal kaysa sa StringBuilder? Ang bagay na nilikha sa pamamagitan ng StringBuffer ay nakaimbak sa bunton. StringBuffer ay may parehong pamamaraan tulad ng StringBuilder , ngunit ang bawat pamamaraan sa StringBuffer ay naka-synchronize iyon ay StringBuffer ligtas ba ang thread. Kaya StringBuilder ay mas mabilis kaysa sa ang StringBuffer kapag tumatawag sa parehong mga pamamaraan ng bawat klase.

Doon, ano ang pagkakaiba sa pagitan ng StringBuffer at StringBuilder?

StringBuilder . StringBuilder ay pareho sa StringBuffer , iyon ay nag-iimbak ito ng bagay sa heap at maaari rin itong mabago. Pangunahing pagkakaiba sa pagitan ng ang StringBuffer at StringBuilder iyan ba StringBuilder ay hindi ligtas sa thread. StringBuilder ay mabilis dahil hindi ito ligtas sa thread.

Kailan ko dapat gamitin ang StringBuffer?

Kung ang halaga ng Bagay ay maaaring magbago at maa-access lamang mula sa isang thread, gamitin isang StringBuilder dahil hindi naka-synchronize ang StringBuilder. Kung sakaling ang halaga ng Bagay ay maaaring magbago, at mababago ng maraming mga thread, gamitin a StringBuffer kasi StringBuffer ay naka-synchronize.

Inirerekumendang: