Galvenās atšķirības - String vs StringBuffer vs StringBuilder Java versijā
String, StringBuffer un String Builder ir Java klases. Virkne tiek plaši izmantota Java programmēšanā. Kad virknes objekts ir izveidots, tos nav iespējams mainīt. Katru reizi, kad tiek veiktas izmaiņas virknē, tā izveido jaunu virkni. Pat ja tā ir saistība ar esošu virkni, tā izveido jaunu virkni. Tas izraisa atmiņas zudumu. StringBuffer un StringBuilder klases Java tiek izmantotas, lai modificētu String. Galvenā atšķirība starp String, StringBuffer un StringBuilder Java ir tāda, ka String ir klase, lai izveidotu String tipa objektu, kas ir rakstzīmju secība, StringBuffer ir klase, ko izmanto, lai modificētu virknes, kas nodrošina pavedienu drošību, un StringBuilder ir klase, kas tiek izmantota, lai modificētu virknes, kas nenodrošina pavedienu drošību.
Kas ir virkne Java?
Stīgu klase ir java.lang pakotnē. Katru reizi, kad programmētājs izveido virkni, tas ir String tipa objekts. Virknēm ir nemainīga nozīme, kad objekts ir izveidots, to nevar mainīt. Objekti, kas izveidoti, izmantojot iesaiņojuma klases, piemēram, Integer, Byte, Float, Double, arī ir nemainīgi. Virknes literāls ir ievietots dubultpēdiņās. piem. "Sveika pasaule". Katru reizi, kad tiek izveidots virknes burts, Java virtuālā mašīna (JVM) pārbauda virknes konstantes pūlu. Ja virkne pastāv, tiek atgriezta atsauce uz virknes konstantes kopu. Ja tā ir jauna virkne, šis objekts tiek izveidots virknes konstantes pūlā.
Attēls 01: Java programma, kas izmanto String, StringBuffer un StringBuilder
Skatiet tālāk norādīto koda daļu.
String s1="Sveiks";
s1=s1 + “Pasaule”;
System.out.println(s1);
Pirmajā paziņojumā s1 attiecas uz “Sveiki” virknes konstantes pūlā. Otrajā paziņojumā JVM nemaina esošo virkni. Tā vietā tiek izveidota jauna virkne ar nosaukumu “Hello World”, un s1 tagad atsaucas uz šo jauno virkni. Izejošais objekts “Sveiki” joprojām pastāv virknes konstantes pūlā.
Ja ir kods, kas ir
String s1="Sveiki";
String s2=s1;
s1, s2 abi attieksies uz virknes objektu “Sveiki”.
Kas ir StringBuffer Java?
StringBuffer klase tiek izmantota, lai padarītu virknes objektus maināmus. Tāpēc šos objektus var modificēt. StringBuffer definē četrus konstruktorus. StringBuffer(), StringBuffer(int size), StringBuffer(String str), StringBuffer (charSequence ch)
Atsauciet tālāk norādīto kodu, StringBuffer s1=new StringBuffer("Sveiki");
s1.append(“Pasaule”);
System.out.println(s1);
1. paziņojumā s1 attiecas uz objektu “Sveiki” kaudzē. Objekts ir mainīgs, jo tas ir izveidots, izmantojot StringBuffer. 2. paziņojumā "Pasaule" ir pievienots tam pašam "Hello" String objektam.
String objekti, kas izveidoti ar StringBuffer klasi, var ietaupīt atmiņu. StringBuffer nodrošina pavedienu drošību, jo divi pavedieni nevar piekļūt vienai un tai pašai StringBuffer klases metodei vienlaikus. Pavedienu drošības samazināšanās StringBuffer veiktspēja. StringBuffer klase satur tādas metodes kā append(), insert(), reverse(), aizstāt().
Kas ir StringBuilder Java?
StringBuilder klase tiek izmantota, lai padarītu virknes objektus mainīgus. Tāpēc šos objektus var modificēt. Funkcionalitāte ir līdzīga StringBuffer, taču tā nenodrošina pavedienu drošību. StringBuilder ir tādi konstruktori kā StringBuilder(), StringBuilder(int size), StringBuilder(String str).
Skatiet tālāk norādīto kodu.
StringBuilder s1=jauns StringBuilder("Sveiki");
s1.append(“Pasaule”);
System.out.println(s1);
1. paziņojumā s1 attiecas uz objektu “Sveiki” kaudzē. Objekts ir mainīgs, jo tas ir izveidots, izmantojot StringBuilder. 2. paziņojumā "Pasaule" ir pievienots tam pašam "Hello" String objektam. Nav izveidots pilnīgi jauns String objekts.
Stringobjekti, kas izveidoti ar StringBuilder klasi, var ietaupīt atmiņu. Atšķirībā no StringBuffer, StringBuilder nenodrošina pavedienu drošību, jo divi pavedieni var piekļūt vienai un tai pašai metodei klasē StringBuilder. Klase StringBuilder satur tādas metodes kā append(), insert(), reverse(), aizstāt().
Kāda ir līdzība starp String, StringBuffer un StringBuilder Java?
Visu var izmantot, lai izveidotu virknes
Kāda ir atšķirība starp StringBuffer un StringBuilder Java?
String vs StringBuffer vs StringBuilder |
|
String | Šī virkne ir Java klase, ko izmanto, lai izveidotu String tipa objektu, kas ir rakstzīmju secība. |
StringBuffer | StringBuffer ir Java klase, ko izmanto, lai izveidotu virknes objektus, kurus var modificēt ar pavedienu drošību. |
StringBuilder | StringBuilder ir klase, ko izmanto, lai izveidotu virknes objektus, kurus var modificēt bez pavedienu drošības. |
Mainība | |
String | Virka ir nemainīga klase. |
StringBuffer | StringBuffer ir mainīga klase. |
StringBuilder | StringBuilder ir mainīga klase. |
Pavedienu drošība | |
String | String metodes ir drošas pavedienam. |
StringBuffer | StringBuffer metodes ir pavedienu drošas un sinhronizētas. |
StringBuilder | StringBuilder metodes nav drošas un nav sinhronizētas. |
Izpilde | |
String | Virkne ir ātra. |
StringBuffer | StringBuffer ir lēns. |
StringBuilder | StringBuilder ir ātrs. |
Kopsavilkums - String vs StringBuffer vs StringBuilder Java versijā
String, StringBuffer un StringBuilder šķiet viens un tas pats, taču tiem ir atšķirīga nozīme. Visas šīs ir Java klases. Atšķirība starp String, StringBuffer un StringBuilder Java ir tāda, ka String ir klase, lai izveidotu String tipa objektu, kas ir rakstzīmju kopa, StringBuffer ir klase, ko izmanto, lai modificētu virknes un nodrošinātu pavedienu drošību, savukārt StringBuilder ir klase, kas tiek izmantota, lai modificētu virknes, kas nenodrošina pavedienu drošību.
Lejupielādēt PDF String vs StringBuffer vs StringBuilder Java versijā
Varat lejupielādēt šī raksta PDF versiju un izmantot to bezsaistē saskaņā ar atsauces piezīmi. Lūdzu, lejupielādējiet PDF versiju šeit Atšķirība starp StringBuffer un StringBuilder Java versijā