Mahalagang Pagkakaiba – String vs StringBuffer vs StringBuilder sa Java
String, StringBuffer at String Builder ay mga klase sa Java. Ang string ay malawakang ginagamit sa Java programming. Kapag nalikha na ang isang object ng String, hindi na posibleng baguhin ang mga ito. Sa tuwing may pagbabago sa String, lumilikha ito ng bagong String. Kahit na ito ay isang concatenation sa isang umiiral na String ito ay lumilikha ng isang bagong String. Nagdudulot ito ng pag-aaksaya ng memorya. Ang mga klase ng StringBuffer at StringBuilder sa Java ay ginagamit upang baguhin ang String. Ang pangunahing pagkakaiba sa pagitan ng String, StringBuffer at StringBuilder sa Java ay ang String ay isang klase upang lumikha ng isang object ng uri ng String na isang pagkakasunud-sunod ng mga character, ang StringBuffer ay isang klase na ginagamit upang baguhin ang Strings na nagbibigay ng kaligtasan sa thread, at ang StringBuilder ay isang class na ginagamit upang baguhin ang Strings na hindi nagbibigay ng kaligtasan sa thread.
Ano ang String sa Java?
Ang String class ay nasa java.lang package. Sa bawat oras na ang programmer ay lumikha ng isang String, ito ay isang object ng uri ng String. Ang mga string ay hindi nababago na kahulugan kapag ang bagay ay nilikha, hindi na ito mababago. Ang mga bagay na nilikha gamit ang mga klase ng wrapper tulad ng Integer, Byte, Float, Double ay hindi rin nababago. Ang isang string literal ay nakapaloob sa double quotes. hal. “Hello World”. Sa bawat oras na lumikha ng literal na string, sinusuri ng Java Virtual Machine (JVM) ang String constant pool. Kung umiiral ang String, ibabalik ang isang reference sa String constant pool. Kung bagong String ito, gagawin ang object na iyon sa String constant pool.
Figure 01: Java program gamit ang String, StringBuffer at StringBuilder
Sumangguni sa ibaba ng piraso ng code.
String s1=“Hello”;
s1=s1 + “Mundo”;
System.out.println(s1);
Sa unang pahayag, tinutukoy ng s1 ang “Hello” sa String constant pool. Sa pangalawang pahayag, hindi binabago ng JVM ang umiiral na String. Sa halip, lumilikha ito ng bagong String bilang "Hello World" at tinutukoy na ngayon ng s1 ang bagong String na iyon. Umiiral pa rin ang papalabas na object na "Hello" sa String constant pool.
Kung mayroong code na, String s1=”Kumusta”;
String s2=s1;
s1, s2 ay parehong tinutukoy ang String object na “Hello”.
Ano ang StringBuffer sa Java?
StringBuffer class ay ginagamit upang gawing nababago ang mga String object. Samakatuwid, ang mga bagay na iyon ay maaaring mabago. Tinutukoy ng StringBuffer ang apat na konstruktor. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)
Suriin ang code sa ibaba, StringBuffer s1=bagong StringBuffer(“Hello”);
s1.append(“Mundo”);
System.out.println(s1);
Sa pahayag 1, tinutukoy ng s1 ang bagay na “Hello” sa isang tambak. Ang bagay ay nababago dahil ito ay nilikha gamit ang StringBuffer. Sa statement 2, ang “World” ay idinagdag sa parehong “Hello” String object.
Ang String object na ginawa gamit ang StringBuffer class ay makakapag-save ng memory. Nagbibigay ang StringBuffer ng kaligtasan sa thread dahil hindi ma-access ng dalawang thread ang parehong paraan sa klase ng StringBuffer nang sabay-sabay. Binabawasan ng kaligtasan ng thread ang pagganap ng StringBuffer. Ang StringBuffer class ay naglalaman ng mga pamamaraan tulad ng append(), insert(), reverse(), replace().
Ano ang StringBuilder sa Java?
StringBuilder class ay ginagamit upang gawing nababago ang mga String object. Samakatuwid, ang mga bagay na iyon ay maaaring mabago. Ang pag-andar ay katulad ng StringBuffer, ngunit hindi ito nagbibigay ng kaligtasan sa thread. May mga constructor ang StringBuilder gaya ng StringBuilder(), StringBuilder(int size), StringBuilder(String str).
Suriin ang code sa ibaba.
StringBuilder s1=bagong StringBuilder(“Hello”);
s1.append(“Mundo”);
System.out.println(s1);
Sa pahayag 1, tinutukoy ng s1 ang bagay na “Hello” sa isang tambak. Ang bagay ay nababago dahil nilikha ito gamit ang StringBuilder. Sa pahayag 2, ang "World" ay idinagdag sa parehong bagay na "Hello" String. Walang paglikha ng ganap na bagong String object.
Ang String object na ginawa gamit ang StringBuilder class ay makakapag-save ng memory. Hindi tulad ng sa StringBuffer, ang StringBuilder ay hindi nagbibigay ng kaligtasan sa thread dahil maaaring ma-access ng dalawang thread ang parehong paraan sa klase ng StringBuilder nang sabay-sabay. Ang klase ng StringBuilder ay naglalaman ng mga pamamaraan tulad ng append(), insert(), reverse(), replace().
Ano ang Pagkakatulad sa pagitan ng String, StringBuffer at StringBuilder sa Java?
Magagamit ang lahat para gumawa ng Strings
Ano ang Pagkakaiba sa pagitan ng String StringBuffer at StringBuilder sa Java?
String vs StringBuffer vs StringBuilder |
|
String | Ang string ay isang Java class na ginagamit upang lumikha ng object ng uri ng String, na isang pagkakasunod-sunod ng mga character. |
StringBuffer | Ang StringBuffer ay isang Java class na ginagamit upang lumikha ng mga String object, na maaaring baguhin sa kaligtasan ng thread. |
StringBuilder | Ang StringBuilder ay isang klase na ginagamit upang lumikha ng mga string object, na maaaring baguhin nang walang kaligtasan ng thread. |
Pagbabago | |
String | Ang string ay isang hindi nababagong klase. |
StringBuffer | Ang StringBuffer ay isang nababagong klase. |
StringBuilder | Ang StringBuilder ay isang nababagong klase. |
Kaligtasan sa Thread | |
String | Ang mga paraan ng String ay ligtas sa thread. |
StringBuffer | Mga pamamaraan ng StringBuffer ay thread-safe at naka-synchronize. |
StringBuilder | Ang mga paraan ng StringBuilder ay hindi naka-thread na ligtas at hindi naka-synchronize. |
Pagganap | |
String | Mabilis ang string. |
StringBuffer | StringBuffer ay mabagal. |
StringBuilder | StringBuilder ay mabilis. |
Buod – String vs StringBuffer vs StringBuilder sa Java
String, StringBuffer at StringBuilder ay mukhang pareho, ngunit magkaiba ang mga kahulugan ng mga ito. Ang lahat ng ito ay mga klase ng Java. Ang pagkakaiba sa pagitan ng String, StringBuffer at StringBuilder sa Java ay iyon, ang String ay klase upang lumikha ng isang object ng uri ng String, na isang set ng mga character, ang StringBuffer ay isang klase na ginagamit upang baguhin ang Strings at magbigay ng kaligtasan sa thread, habang ang StringBuilder ay isang class na ginagamit upang baguhin ang Strings na hindi nagbibigay ng kaligtasan sa thread.
I-download ang PDF String vs StringBuffer vs StringBuilder sa Java
Maaari mong i-download ang PDF na bersyon ng artikulong ito at gamitin ito para sa mga offline na layunin ayon sa tala ng pagsipi. Paki-download ang bersyon ng PDF dito Pagkakaiba sa pagitan ng String StringBuffer at StringBuilder sa Java