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.
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
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”.
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 ().
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 ().
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. |
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.
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
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