Diferència entre cadena i classe StringBuffer a Java

Autora: Laura McKinney
Data De La Creació: 3 Abril 2021
Data D’Actualització: 15 Ser Possible 2024
Anonim
Diferència entre cadena i classe StringBuffer a Java - Tecnologia
Diferència entre cadena i classe StringBuffer a Java - Tecnologia

Content


String i StringBuffer són les classes que operen en cadenes. La classe StringBuffer és la classe entre iguals de la classe String. L'objecte de la classe String és de longitud fixa. L’objecte de la classe StringBuffer és cultivable. La diferència bàsica entre String i StringBuffer és que l’objecte de la classe “String” és immutable. L'objecte de la classe "StringBuffer" mutable.

  1. Gràfic de comparació
  2. Definició
  3. Diferències claus
  4. Conclusió

Gràfic de comparació

Bases per a la comparacióCadenaStringBuffer
BàsicLa longitud de l'objecte String és fixa.Es pot augmentar la longitud de StringBuffer.
ModificacióL’objecte de cadena és immutable.L'objecte StringBuffer és mutable.
RendimentÉs més lent durant la concatenació.És més ràpid durant la concatenació.
MemòriaConsumeix més memòria.Consumeix menys memòria.
EmmagatzematgePiscina constant de cadena.Memòria de munt.


Definició de Cadena

"Cadena" és una classe de Java. L’objecte de la classe String és de longitud fixa i el més important a recordar, l’objecte de la classe String és “immutable”. Un cop inicialitzada l'objecte String, no podreu tornar a modificar l'objecte. L’objecte de la classe String s’emmagatzema a l’agrupament constant String.

Entenem primer que, sempre que creeu una cadena; crees un objecte de tipus string. Les constants de cadena també són objectes de cadena.

System.out.ln ("Hola es tracta de la solució Teckpix");

A la declaració anterior, la cadena "Hola això és la solució Teckpix" és una constant de cadena.

Ara entenem la mutabilitat de l’objecte String amb l’ajut d’un exemple.

String str = new String ("Teckpix"); str.concat ("Solució"); system.out.ln (str); // sortida Teckpix

Al codi anterior, vaig intentar concatenar les dues cadenes “Teckpix” i “Solució”. Com sabem sempre que es crea una cadena això vol dir que es crea l’objecte del tipus String. Per tant, la cadena "Teckpix" crea un objecte, la referència del qual s'assigna a l'objecte de cadena "str". A continuació, vaig intentar concatenar una altra cadena "Solució" amb la cadena "Teckpix" mitjançant el mètode "concat ()" de la classe String.


Com que els objectes String són immutables, no es fa cap modificació a la cadena "Teckpix" i la nova cadena "Solució" crea un altre objecte a l'agrupació constant de cadena. Però, la referència a l'objecte "Solució" no la agafa cap objecte, per tant, la referència a l'objecte Solució es perd encara que encara està present a l'agrupació constant de cadena. Com no es fa cap modificació a l'objecte Teckpix, quan jo estic l'objecte al qual vaig assignar la referència de Teckpix anteriorment, només es farà la cadena "Teckpix".

Definició de StringBuffer

La classe "StringBuffer" és la classe entre iguals de la classe "String". La classe StringBuffer proporciona més funcionalitat a les cadenes. L'objecte de la classe StringBuffer és mutable, que és el seu objecte que es pot modificar. La longitud de l’objecte StringBuffer és cultivable. Podeu inserir els caràcters o subcadeus al mig de la cadena literal assignats a l'objecte StringBuffer o al final d'aquest. StringBuffer assigna espai per a 16 caràcters addicionals quan no es demana cap longitud específica.

Entenem la mutabilitat de l’objecte StringBuffer amb l’ajut d’un exemple:

StringBuffer Sb = StringBuffer nou ("Teckpix"); Sb.append ("Solució"); system.out.ln (Sb); // Solució Teckpix de sortida

Com sabem que l'objecte StringBuffer és mutable. El mètode append () modifica l’objecte Sb StringBuffer al qual inicialment s’ha assignat la referència de l’objecte “Teckpix”. El mètode append () adjunta la nova cadena literal "Solució", al final de la cadena literal "Teckpix". Ara quan jo faci l'objecte Sb, serà objecte de cadena modificada "Solucions Teckpix".

  1. La longitud de l'objecte String és fixa, però la longitud d'un objecte de StringBuffer es pot augmentar quan calgui.
  2. L’objecte de cadena és immutable, és a dir, l’objecte de StringBuffer és mutable.
  3. L’objecte String té un rendiment més lent mentre que l’objecte StringBuffer és més ràpid.
  4. L’objecte String consumeix més memòria mentre que, els objectes StringBuffer consumeixen menys memòria.
  5. Els objectes de cadena s'emmagatzemen en un conjunt constant mentre que els objectes StringBuffer es guarden a la memòria acumulada.

Conclusió:

Els objectes StringBuffer proporcionen més funcionalitat a les cadenes en comparació amb la classe String. Per tant, és preferible treballar amb StringBuffer en lloc de la classe String.