Priporočena, 2024

Izbira Urednika

Razlika med nizom in razredom StringBuffer v Javi

String in StringBuffer sta oba razreda, ki delujeta na nizih. Razred StringBuffer je vrstniški razred razreda String. Objekt razreda String je fiksne dolžine. Predmet razreda StringBuffer je rastljiv. Osnovna razlika med Stringom in StringBufferjem je, da je objekt razreda »String« nespremenljiv . Objekt razreda "StringBuffer" je spremenljiv .

Primerjalna tabela

Podlaga za primerjavoNizStringBuffer
OsnovnoDolžina objekta String je določena.Dolžino StringBufferja lahko povečate.
SpremembaObjekt niza je nespremenljiv.Objekt StringBuffer je spremenljiv.
IzvedbaMed združevanjem je počasnejša.Med združevanjem je hitrejši.
SpominPorabi več pomnilnika.Manj pomnilnika.
ShranjevanjeStalni 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.

Ker so objekti niza nespremenljivi, se niz »Teckpix« ne spremeni, nov niz »Solution« pa ustvari še en objekt v nizu stalnih konstant. Toda sklicevanje na objekt »Rešitev« ne ujame noben predmet, zato se sklicevanje na objektno rešitev izgubi, čeprav je še vedno prisotno v nizu stalnih konstant. Ker za objekt Teckpix ni opravljena nobena sprememba, ko natisnem predmet str, na katero sem prej dodelil referenco Teckpixa, bo natisnil samo niz »Teckpix«.

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:

 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

  1. Dolžina objekta String je fiksna, vendar se lahko dolžina predmeta StringBuffer po potrebi poveča.
  2. String objekt je nespremenljiv, tj. Njegov predmet ni mogoče ponovno dodeliti, medtem ko je objekt StringBuffer spremenljiv.
  3. String objekt je uspešnejši, medtem ko je objekt StringBuffer hitrejši.
  4. String objekt porabi več pomnilnika, medtem ko objekti StringBuffer porabijo manj pomnilnika.
  5. 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.

Top