Atšķirība starp StringBuffer un StringBuilder Java

Galvenā atšķirība - stīga vs StringBuffer vs StringBuilder Java
 

Stīgas, StringBuffer un String Builder ir Java klases. Stīgas tiek plaši izmantotas Java programmēšanā. Kad ir izveidots stīgas objekts, tos mainīt nav iespējams. Katru reizi, kad tiek mainīta virkne, tā izveido jaunu virkni. Pat ja tas ir esošās stīgas savienojums, tas rada jaunu stīgu. Tas izraisa atmiņas izšķērdēšanu. StringBuffer un StringBuilder klases Java tiek izmantotas, lai modificētu virkni. galvenā atšķirība starp String, StringBuffer un StringBuilder Java ir tas String ir klase, lai izveidotu String tipa objektu, kas ir rakstzīmju secība, StringBuffer ir klase, kuru izmanto, lai modificētu Strings, kas nodrošina pavedienu drošību, un StringBuilder ir klase, kuru izmanto, lai modificētu virknes, kas nenodrošina pavedienu drošību.

SATURS

1. Pārskats un galvenās atšķirības
2. Kas ir virkne Java
3. Kas ir StringBuffer Java?
4. Kas ir StringBuilder Java?
5. Līdzības starp StringBuffer un StringBuilder Java
6. Salīdzinājums blakus - virkne vs StringBuffer vs StringBuilder Java tabulas formā
7. Kopsavilkums

Kas ir virkne Java?

Stīgu klase ir java.lang paketē. Katru reizi, kad programmētājs izveido virkni, tas ir String tipa objekts. Virknes ir negrozāmas, pēc objekta izveidošanas to nevar mainīt. Objekti, kas izveidoti, izmantojot iesaiņojuma klases, piemēram, vesels skaitlis, baits, pludiņš, dubultā, arī nav mainīgi. Burtu virkne ir pievienota pēdiņās. piem. "Sveika pasaule". Katru reizi, kad tiek izveidots stīgu burts, Java virtuālā mašīna (JVM) pārbauda virknes nemainīgo kopu. Ja virkne pastāv, tiek atgriezta atsauce uz virknes nemainīgo kopu. Ja tā ir jauna virkne, šis objekts tiek izveidots nemainīgā virknes virknē.

01. attēls: Java programma, izmantojot String, StringBuffer un StringBuilder

Skatiet zemāk redzamo koda daļu.

Stīga s1 = “labdien”;

s1 = s1 + “pasaule”;

System.out.println (s1);

Pirmajā paziņojumā s1 atsaucas uz “Sveiki”, kas atrodas virknes nemainīgajā baseinā. Otrajā paziņojumā JVM nemaina esošo virkni. Tā vietā tas izveido jaunu virkni kā “Hello World”, un s1 tagad atsaucas uz šo jauno virkni. Izejošais “Hello” objekts joprojām pastāv String pastāvīgajā baseinā.

Ja ir kods, kas ir,

Stīga s1 = “labdien”;

Stīgas s2 = s1;

s1, s2 abi atsaucas uz virknes objektu “Sveiki”.

Kas ir StringBuffer Java?

StringBuffer klase tiek izmantota, lai String objekti būtu mainīgi. Tādēļ šos objektus var modificēt. StringBuffer definē četrus konstruktorus. StringBuffer (), StringBuffer (int izmērs), StringBuffer (String str), StringBuffer (charSequence [] ch)

Skatiet kodu zemāk,

StringBuffer s1 = jauns StringBuffer (“Sveiki”);

s1.append (“Pasaule”);

System.out.println (s1);

1. paziņojumā s1 attiecas uz “sveiks” objektu kaudzē. Objekts ir mainīgs, jo tas ir izveidots, izmantojot StringBuffer. 2. paziņojumā “Pasaule” ir pievienota tam pašam “Sveiks” virknes objektam.

Stīgu objekti, kas izveidoti, izmantojot StringBuffer klasi, var ietaupīt atmiņu. StringBuffer nodrošina diegu drošību, jo divi pavedieni nevar piekļūt vienai un tai pašai metodei StringBuffer klasē vienlaicīgi. Vītnes drošība samazina StringBuffer veiktspēju. StringBuffer klasē ir tādas metodes kā papildināt (), ievietot (), mainīt (), aizstāt ().

Kas ir StringBuilder Java??

StringBuilder klase tiek izmantota, lai padarītu String objektus mainīgus. Tādēļ šos objektus var modificēt. Funkcionalitāte ir līdzīga StringBuffer, taču tā nenodrošina diegu drošību. StringBuilder ir tādi konstruktori kā StringBuilder (), StringBuilder (int izmērs), StringBuilder (String str).

Skatiet zemāk esošo kodu.

StringBuilder s1 = jauns StringBuilder (“Sveiks”);

s1.append (“Pasaule”);

System.out.println (s1);

1. paziņojumā s1 attiecas uz “sveiks” objektu kaudzē. Objekts ir mainīgs, jo tas ir izveidots, izmantojot StringBuilder. 2. paziņojumā “Pasaule” ir pievienota tam pašam “Sveiks” virknes objektam. Netiek izveidots pilnīgi jauns stīgu objekts.

Stīgu objekti, kas izveidoti, izmantojot StringBuilder klasi, var ietaupīt atmiņu. Atšķirībā no versijas StringBuffer, StringBuilder nenodrošina diegu drošību, jo divi pavedieni vienlaikus var piekļūt vienai un tai pašai metodei StringBuilder klasē. StringBuilder klasē ir tādas metodes kā papildināt (), ievietot (), mainīt (), aizstāt ().

Kāda ir Java versiju String, StringBuffer un StringBuilder līdzība?

  • Visus var izmantot, lai izveidotu stīgas.

Kāda ir atšķirība starp StringBuffer un StringBuilder Java?

Stīga vs StringBuffer vs StringBuilder

Stīgu Virkne ir Java klase, kuru izmanto, lai izveidotu objektu String, kas ir rakstzīmju secība.
StringBuffer StringBuffer ir Java klase, kuru izmanto, lai izveidotu virknes objektus, kurus var modificēt ar diegu drošību.
StringBuilder StringBuilder ir klase, ko izmanto, lai izveidotu virkņu objektus, kurus var modificēt bez diegu drošības.
Mainīgums
Stīgu Stīga ir nemainīga klase.
StringBuffer StringBuffer ir mainīga klase.
StringBuilder StringBuilder ir mainīga klase.
Vītņu drošība
Stīgu Stīgu metodes ir drošas pavedieniem.
StringBuffer StringBuffer metodes ir drošas pavedieniem un sinhronizētas.
StringBuilder StringBuilder metodes nav droši vītņotas un netiek sinhronizētas.
Performance
Stīgu Virkne ir ātra.
StringBuffer StringBuffer darbojas lēni.
StringBuilder StringBuilder darbojas ātri.

Kopsavilkums - stīgas vs StringBuffer vs StringBuilder Java 

Stīgas, StringBuffer un StringBuilder, šķiet, ir vienādas, taču tām 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, kuru izmanto, lai modificētu virknes un nodrošinātu pavedienu drošību, savukārt StringBuilder ir klase, ko izmanto, lai modificētu stīgas, kas nenodrošina diegu drošību.

Lejupielādējiet Java programmā PDF String vs StringBuffer vs StringBuilder

Varat lejupielādēt šī raksta PDF versiju un izmantot to bezsaistes vajadzībām, kā norādīts citēšanas piezīmē. Lūdzu, lejupielādējiet šeit PDF versiju. Atšķirība starp String StringBuffer un StringBuilder Java

Atsauce:

1. “String vs StringBuffer vs StringBuilder.” JournalDev, 2017. gada 30. jūlijs. Pieejams šeit
2. “Java izsalcis”. Atšķirība starp stīgām, StringBuilder un StringBuffer klasēm ar piemēru: Java | Java izsalcis. Pieejams šeit 
3.tutorialspoint.com. “Java stīgas”. Jēga. Pieejams šeit