Anbefalt, 2024

Redaksjonens

Forskjellen mellom streng og StringBuffer klasse i Java

String og StringBuffer begge er klassene som opererer på strenger. StringBuffer-klassen er klasseklassens strengeklasse. Hensikten med strengklasse er av fast lengde. Objektet til StringBuffer-klassen er voksbar. Den grunnleggende forskjellen mellom String og StringBuffer er at objektet i "String" -kursen er uforanderlig . Formålet med klassen "StringBuffer" er mutable .

Sammenligningstabel

Grunnlag for sammenligningstringStringbuffer
grunn~~POS=TRUNCLengden på strengobjektet er fast.Lengden på StringBuffer kan økes.
modifiseringStrengeobjektet er uforanderlig.StringBuffer-objektet er mutable.
OpptredenDet er langsommere under sammenkobling.Det er raskere under sammenkobling.
HukommelseForbruker mer minne.Forbruker mindre minne.
OppbevaringString konstant basseng.Heap Memory.

Definisjon av streng

"String" er en klasse i Java. Objektet til klassen String er av fast lengde, og viktigst å huske, er objektet til String-klassen "uforanderlig". Når du initialiserer String-objektet, kan du ikke endre objektet på nytt. Formålet med klassen String er lagret i String konstant basseng.

La oss først forstå det, når du lager en streng; du lager et objekt av typen streng. Strengkonstantene er også strengobjekter.

 System.out.println ("Hei dette er Teckpix Solution"); 

I overstående er strengen "Hei dette Teckpix Solution" en strengkonstant.

La oss nå forstå mutasjonen av strengobjektet ved hjelp av et eksempel.

 String str = new String ("Teckpix"); str.concat ( "løsning"); system.out.println (str); // utgang Teckpix 

I over kode prøvde jeg å sammenkoble de to strengene "Teckpix" og "Solution". Som vi vet når en streng er opprettet, betyr det at objektet Type String er opprettet. Derfor skaper strengen "Teckpix" et objekt, hvis referanse er tilordnet strengobjektet "str". Deretter prøvde jeg å sammenkoble en annen streng "Løsning" med strengen "Teckpix" ved å bruke metoden "concat ()" i klassen String.

Ettersom strengobjektene er uforanderlige, gjøres ingen endring til strengen "Teckpix", og den nye strengen "Løsning" skaper en annen gjenstand i strengenes konstante basseng. Men referansen til objektet "Løsning" er ikke fanget av noe objekt derav referansen til objektet Løsningen går tapt, selv om den fortsatt er tilstede i strengenes konstante basseng. Da ingen endring er gjort på objektet Teckpix, vil jeg skrive ut strengen "Teckpix" bare når jeg skriver ut objektet str som jeg tilordnet referansen til Teckpix tidligere.

Definisjon av StringBuffer

Klassen "StringBuffer" er klasseklassen "String" i klasseklassen. Klassen StringBuffer gir mer funksjonalitet til strengene. Objektet til StringBuffer-klassen er mutable som er objektet kan endres. Lengden på StringBuffer-objektet er voksbar. Du kan sette inn tegnene eller understrengene i midten av strengen bokstavelig som er tilordnet StringBuffer-objektet eller på slutten av det. StringBuffer tildeler plass til 16 ekstra tegn når ingen spesifikk lengde blir bedt om.

La oss forstå mutasjonen av StringBuffer-objektet ved hjelp av et eksempel:

 StringBuffre Sb = ny StringBuffer ("Teckpix"); Sb.append ( "Løsning"); system.out.println (Sb); // Output Teckpix Solution 

Som vi vet at StringBuffer-objektet er mutable. Metoden vedlegg () modifiserer StringBuffer-objektet Sb, som i utgangspunktet referansen til objektet "Teckpix" er tilordnet tidligere. Metoden append () legger til den nye strengens bokstavelige "Solution", til slutten av strengen bokstavelig "Teckpix". Nå når jeg skriver ut objektet Sb, vil det skrive ut den modifiserte strengobjektet "Teckpix Solutions".

Nøkkelforskjell mellom String og StringBuffer

  1. Lengden på String-objektet er fast, men lengden på et objekt av StringBuffer kan økes når det kreves.
  2. Strengeobjektet er uforanderlig, dvs. objektets gjenstand kan ikke tilordnes igjen, mens objektet til StringBuffer er mutable.
  3. Stringsobjektet er tregere i ytelse mens StringBuffer-objektet er raskere.
  4. Stringobjektet bruker mer minne mens StringBuffer-objekter bruker mindre minne.
  5. Stringobjekter lagres i en konstant pool, mens StringBuffer-objekter er lagret på haugen.

Konklusjon:

StringBuffer-objekter gir mer funksjonalitet til strengene i forhold til klassen String. Derfor er det å foretrekke å jobbe med StringBuffer i stedet for klasse String.

Top