![](http://gadget-info.com/img/difference-between/648/difference-between-string.jpg)
Primerjalna tabela
Podlaga za primerjavo | Niz | StringBuffer |
---|---|---|
Osnovno | Dolžina objekta String je določena. | Dolžino StringBufferja lahko povečate. |
Sprememba | Objekt niza je nespremenljiv. | Objekt StringBuffer je spremenljiv. |
Izvedba | Med združevanjem je počasnejša. | Med združevanjem je hitrejši. |
Spomin | Porabi več pomnilnika. | Manj pomnilnika. |
Shranjevanje | Stalni stalni sklad. | Pomnilnik kopice. |
Opredelitev niza
»String« je razred v Javi. Predmet razreda String je fiksne dolžine in kar je najpomembnejše, da si zapomnimo, je predmet razreda String »nespremenljiv«. Ko inicializirate predmet String, tega objekta ne morete več spremeniti. Objekt razreda String je shranjen v nizu String.
Najprej moramo razumeti, da vsakič, ko ustvarite katerikoli niz; izdelate objekt tipa string. Konstante nizov so tudi niz predmetov.
System.out.println ("Zdravo to je Teckpix Solution");
V zgornjem stavku je niz »Hello this is Teckpix Solution« stalna konstanta.
Zdaj bomo razumeli spremenljivost objekta String s pomočjo primera.
String str = new String ("Teckpix"); str.concat ("rešitev"); system.out.println (str); // izhod Teckpix
V zgornji kodi sem skušal združiti dva niza »Teckpix« in »Solution«. Kot vemo, ko je ustvarjen niz, kar pomeni, da je ustvarjen objekt tipa String. Zato niz »Teckpix« ustvari objekt, katerega referenca je dodeljena predmetu niza »str«. Nato sem skušal povezati še en niz »Solution« z nizom »Teckpix« z uporabo metode »concat ()« razreda String.
![](http://gadget-info.com/img/difference-between/648/difference-between-string-2.jpg)
Opredelitev StringBufferja
Razred »StringBuffer« je vrstniški razred razreda »String«. Razred StringBuffer zagotavlja več funkcionalnosti nizov. Objekt razreda StringBuffer je spremenljiv, saj je njegov predmet mogoče spremeniti. Dolžina objekta StringBuffer je mogoča. Vstavite lahko znake ali podnize v sredini literalnega niza, ki je dodeljen objektu StringBuffer ali na koncu. StringBuffer dodeli prostor za 16 dodatnih znakov, kadar ni zahtevana določena dolžina.
Razumimo spremenljivost objekta StringBuffer s pomočjo primera:
![](http://gadget-info.com/img/difference-between/648/difference-between-string-3.jpg)
StringBuffre Sb = novo StringBuffer ("Teckpix"); Sb.append ("rešitev"); system.out.println (Sb); // Output Teckpix Solution
Kot vemo, je objekt StringBuffer spremenljiv. Metoda append () spremeni objekt StringBuffer Sb, kateremu je bila na začetku dodeljena referenca objekta "Teckpix". Metoda append () doda nov literalni niz "Solution" na konec literalnega niza "Teckpix". Zdaj, ko natisnem objekt Sb, bo natisnil spremenjeni predmet niza »Teckpix Solutions«.
Ključna razlika med nizom in nizom StringBuffer
- Dolžina objekta String je fiksna, vendar se lahko dolžina predmeta StringBuffer po potrebi poveča.
- String objekt je nespremenljiv, tj. Njegov predmet ni mogoče ponovno dodeliti, medtem ko je objekt StringBuffer spremenljiv.
- String objekt je uspešnejši, medtem ko je objekt StringBuffer hitrejši.
- String objekt porabi več pomnilnika, medtem ko objekti StringBuffer porabijo manj pomnilnika.
- String objekti so shranjeni v konstantnem področju, medtem ko so objekti StringBuffer shranjeni v pomnilniku kopice.
Sklep:
Objekti StringBuffer zagotavljajo več funkcionalnosti nizov v primerjavi z razredom String. Zato je bolje uporabiti StringBuffer namesto razreda String.