Pagkakaiba sa pagitan ng StringBuffer at StringBuilder

Pagkakaiba sa pagitan ng StringBuffer at StringBuilder
Pagkakaiba sa pagitan ng StringBuffer at StringBuilder

Video: Pagkakaiba sa pagitan ng StringBuffer at StringBuilder

Video: Pagkakaiba sa pagitan ng StringBuffer at StringBuilder
Video: OVERLAP AT CONFLICTING BOUNDARIES NG LUPA, PAANO AAYUSIN? 2024, Hulyo
Anonim

StringBuffer vs StringBuilder

Ang Java ay isang napakasikat na object oriented na wika. Sa Java, ang String na klase ay ibinigay upang magkaroon ng pagkakasunod-sunod ng mga character na hindi mababago (kapag nasimulan). Bilang kahalili, ang Java programming language ay nagbibigay ng dalawang uri ng nababagong sequence ng mga character. Iyon ay, kapag kailangan ng mga programmer na baguhin ang isang tiyak na String (pagkatapos ng pagsisimula), kailangan nilang gamitin ang StringBuffer class o ang StringBuilder class, sa halip na ang String class. Ipinakilala ang StringBuffer sa JDK 1.0 at ang klase ng StringBuilder ay ipinakilala sa JDK 1.5, talagang bilang isang kapalit para sa klase ng StringBuffer (para sa mga single-thread na kapaligiran).

Ano ang StringBuffer?

StringBuffer class ay ipinakilala sa JDK 1.0. Ang StringBuffer class ay kabilang sa java.lang package at minana mula sa generic na java.lang.object. Hindi na ito maaaring pahabain pa ng mga programmer dahil ito ay panghuling klase. Ang klase ng StringBuffer ay nagpapatupad ng Serializable, Appendable at CharSequience na mga interface. Ang isang object ng klase na StringBuffer ay maaaring maglaman ng isang sequence ng mga character na nababago at thread-safe. Ibig sabihin, ito ay halos kapareho sa isang String object, ngunit ang pagkakasunud-sunod ng mga character (haba at nilalaman) ay maaaring mabago anumang oras pagkatapos masimulan ang StringBuffer object. Gayunpaman, dapat itong gawin gamit ang mga partikular na pamamaraan na ibinigay ng klase ng StringBuffer. Mayroong dalawang prinsipyong pagpapatakbo sa StringBuffer class. Ang mga ito ay ibinibigay ng append() at insert() na mga pamamaraan. Overloaded ang mga pamamaraang ito, kaya nagagawa nilang tumanggap ng data ng anumang uri gaya ng integer at long. Ang parehong mga pamamaraan ay unang binabago ang anumang input sa isang string, at pagkatapos ay nagdaragdag (nagdaragdag o naglalagay) ng mga character ng kaukulang string sa umiiral na Stribbuffer object. Ang paraan ng append() ay nagdaragdag ng na-convert na string sa dulo ng umiiral na StringBuffer object, habang ang insert() na paraan ay magdaragdag ng mga input character sa tinukoy na insertion point.

Ano ang StringBuilder?

Ang StringBuilder class ay ipinakilala sa JDK 1.5. Ang StringBuilder API ay halos kapareho sa StringBuffer API. Sa katunayan, ang StringBuilder class ay aktwal na ipinakilala bilang isang kapalit para sa StringBuffer class (para sa single-thread application). Ang StringBuilder class ay kabilang sa java.lang package at minana mula sa generic na java.lang.object. Ito ay isang pangwakas na klase at kaya ang mga programmer ay hindi maaaring pahabain ito. Ang klase ng StringBuilder ay nagpapatupad ng Serializable, Appendable at CharSequience na mga interface. Ang isang object ng klase na StringBuilder ay maaaring maglaman ng isang sequence ng mga character na nababago ngunit hindi thread-safe. Ibig sabihin, ito ay halos kapareho sa isang String object, ngunit ang string ay maaaring baguhin anumang oras. Ngunit ang StringBuilder class ay hindi nagbibigay ng synchronization, at samakatuwid ay sinasabing mas mabilis kaysa sa paggamit ng StringBuffer class. Ang StringBuilder class ay nagbibigay ng append() at insert() na mga pamamaraan na may eksaktong katulad na functionality tulad ng sa StringBuffer class.

Ano ang pagkakaiba ng StringBuffer at StringBuilder?

Bagaman, ang mga klase ng StringBuilder at StringBuffer ay maaaring gamitin para sa mga nababagong sequence ng mga character sa Java, mayroon silang pangunahing pagkakaiba. Hindi tulad ng StringBuffer class, ang StringBuilder class ay hindi thread-safe, at hindi nagbibigay ng synchronization. Samakatuwid, inirerekumenda na ang StringBuilder class ay dapat gamitin bilang kapalit ng StringBuffer class sa single-thread application, dahil sinasabing ang StringBuilder class ay magiging mas mabilis kaysa sa StringBuffer class (sa ilalim ng normal na mga pangyayari).

Inirerekumendang: