Galvenā atšķirība - String vs StringBuffer vs StringBuilder Java
String, StringBuffer un String Builder ir Java klases. Stīgas tiek plaši izmantotas Java programmēšanā. Kad ir izveidots virknes objekts, tos nav iespējams mainīt. Katru reizi, kad notiek virknes izmaiņas, tā izveido jaunu virkni. Pat ja tas ir savienojums ar esošu virkni, tas rada jaunu virkni. Tas izraisa atmiņas izšķiešanu. 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, ko izmanto, lai modificētu virknes, kas nenodrošina pavedienu drošību.
SATURS
1. Pārskats un galvenās atšķirības
2. Kas ir String Java
3. Kas ir StringBuffer Java
4. Kas ir StringBuilder Java
5. Līdzības starp StringBuffer un StringBuilder Java
6. Blakus salīdzinājums - String vs StringBuffer vs StringBuilder Java tabulas veidā
7. Kopsavilkums
Kas ir virkne Java valodā?
Stīgu klase ir java.lang paketē. Katru reizi, kad programmētājs izveido virkni, tas ir virknes tipa objekts. Stīgas ir nemainīga nozīme, tiklīdz objekts ir izveidots, to nevar mainīt. Objekti, kas izveidoti, izmantojot ietīšanas klases, piemēram, Integer, Byte, Float, Double, arī nav maināmi. Virknes literālis ir pievienots pēdiņās. piemēram, “Sveika pasaule”. Katru reizi, kad tiek izveidots virknes burtnieks, 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 virknes nemainīgajā baseinā.
01. attēls: Java programma, izmantojot String, StringBuffer un StringBuilder
Skatiet zemāk esošo koda daļu.
Virkne s1 = “Labdien”;
s1 = s1 + “Pasaule”;
System.out.println (s1);
Pirmajā paziņojumā s1 atsaucas uz “Hello” virknes nemainīgajā baseinā. Otrajā paziņojumā JVM nemaina esošo virkni. Tā vietā tā izveido jaunu virkni kā “Hello World”, un s1 tagad atsaucas uz šo jauno virkni. Izejošais objekts “Hello” joprojām pastāv nemainīgā virknes virknē.
Ja ir kods, kas ir, Virkne s1 =”Labdien”;
Virkne s2 = s1;
s1, s2 abi atsaucas uz virknes objektu “Labdien”.
Kas ir StringBuffer Java?
StringBuffer klase tiek izmantota, lai padarītu String objektus maināmus. 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 (“Labdien”);
s1.append (“Pasaule”);
System.out.println (s1);
1. paziņojumā s1 atsaucas uz kaudzes objektu “Hello”. Objekts ir maināms, jo tas ir izveidots, izmantojot StringBuffer. 2. paziņojumā “Pasaule” ir pievienota tam pašam “Hello” virknes objektam.
String objekti, kas izveidoti ar StringBuffer klasi, var ietaupīt atmiņu. StringBuffer nodrošina pavedienu drošību, jo divi pavedieni vienlaikus nevar piekļūt vienai un tai pašai metodei StringBuffer klasē. Vītnes drošība samazina StringBuffer veiktspēju. StringBuffer klasē ir tādas metodes kā append (), insert (), reverse (), aizstāt ().
Kas ir Java StringBuilder?
StringBuilder klase tiek izmantota, lai padarītu String objektus maināmus. Tādēļ šos objektus var modificēt. Funkcionalitāte ir līdzīga StringBuffer, taču tas nenodrošina pavedienu drošību. StringBuilder ir tādi konstruktori kā StringBuilder (), StringBuilder (int size), StringBuilder (String str).
Skatiet zemāk esošo kodu.
StringBuilder s1 = jauns StringBuilder (“Labdien”);
s1.append (“Pasaule”);
System.out.println (s1);
1. paziņojumā s1 atsaucas uz kaudzes objektu “Hello”. Objekts ir maināms, jo tas ir izveidots, izmantojot StringBuilder. 2. paziņojumā “Pasaule” ir pievienota tam pašam “Hello” virknes objektam. Nav pilnīgi jauna String objekta izveides.
String objekti, kas izveidoti ar StringBuilder klasi, var ietaupīt atmiņu. Atšķirībā no StringBuffer, StringBuilder nenodrošina pavedienu drošību, jo divi pavedieni vienlaicīgi var piekļūt vienai un tai pašai metodei StringBuilder klasē. StringBuilder klase satur tādas metodes kā append (), insert (), reverse (), aizstāt ().
Kāda ir Java virknes, StringBuffer un StringBuilder līdzība?
Visus var izmantot, lai izveidotu virknes
Kāda ir atšķirība starp String StringBuffer un StringBuilder Java?
Atšķirīgs raksts vidū pirms tabulas
String vs StringBuffer vs StringBuilder |
|
Stīga | Virkne ir Java klase, ko izmanto, lai izveidotu objektu ar virkni String, 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, kuru izmanto, lai izveidotu virknes objektus, kurus var modificēt bez pavedienu drošības. |
Mainīgums | |
Stīga | Stīga ir nemainīga klase. |
StringBuffer | StringBuffer ir mainīga klase. |
StringBuilder | StringBuilder ir mainīga klase. |
Vītnes drošība | |
Stīga | Stīgu metodes ir drošas ar diegu. |
StringBuffer | StringBuffer metodes ir drošas ar pavedieniem un sinhronizētas. |
StringBuilder | StringBuilder metodes nav vītņotas un nav sinhronizētas. |
Izrāde | |
Stīga | Stīga ir ātra. |
StringBuffer | StringBuffer darbojas lēni. |
StringBuilder | StringBuilder ir ātrs. |
Kopsavilkums - String vs StringBuffer vs StringBuilder Java
Šķiet, ka String, StringBuffer un StringBuilder 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 pārveidotu virknes un nodrošinātu pavedienu drošību, savukārt StringBuilder ir klase, ko izmanto, lai modificētu virknes, kas nenodrošina pavedienu drošību.
Lejupielādējiet Java failu PDF String vs StringBuffer vs StringBuilder
Jūs varat lejupielādēt šī raksta PDF versiju un izmantot to bezsaistes vajadzībām, kā norādīts piezīmē. Lūdzu, lejupielādējiet PDF versiju šeit Starpība starp String StringBuffer un StringBuilder Java