Differenza tra String e StringBuffer Class in Java

Autore: Laura McKinney
Data Della Creazione: 3 Aprile 2021
Data Di Aggiornamento: 14 Maggio 2024
Anonim
Difference between String and StringBuffer Class in Java | Java Lectures for Semester Exams in Hindi
Video: Difference between String and StringBuffer Class in Java | Java Lectures for Semester Exams in Hindi

Contenuto


String e StringBuffer sono entrambe le classi che operano sulle stringhe. La classe StringBuffer è la classe peer della classe String. L'oggetto della classe String è di lunghezza fissa. L'oggetto della classe StringBuffer è coltivabile. La differenza fondamentale tra String e StringBuffer è che l'oggetto della classe "String" è immutabile. L'oggetto della classe "StringBuffer" mutevole.

  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontoCordaStringBuffer
Di baseLa lunghezza dell'oggetto String è fissa.La lunghezza di StringBuffer può essere aumentata.
ModificaL'oggetto stringa è immutabile.L'oggetto StringBuffer è modificabile.
PrestazioneÈ più lento durante la concatenazione.È più veloce durante la concatenazione.
MemoriaConsuma più memoria.Consuma meno memoria.
ConservazionePool costante di stringhe.Heap Memory.


Definizione di stringa

"String" è una classe in Java. L'oggetto della classe String ha una lunghezza fissa e, cosa più importante da ricordare, l'oggetto della classe String è "immutabile". Dopo aver inizializzato l'oggetto String, non è possibile modificarlo nuovamente. L'oggetto della classe String è memorizzato nel pool di costanti String.

Cerchiamo innanzitutto di capirlo, ogni volta che crei una stringa; si crea un oggetto di tipo stringa. Le costanti di stringa sono anche oggetti stringa.

System.out.ln ("Ciao, questa è la soluzione Teckpix");

Nell'istruzione precedente, la stringa "Hello this is Teckpix Solution" è una costante String.

Vediamo ora la mutabilità dell'oggetto String con l'aiuto di un esempio.

String str = new String ("Teckpix"); str.concat ( "Soluzione"); system.out.ln (str); // output Teckpix

Nel codice sopra, ho provato a concatenare le due stringhe "Teckpix" e "Solution". Come sappiamo ogni volta che viene creata una stringa, ciò significa che viene creato l'oggetto di tipo String. Quindi, la stringa "Teckpix" crea un oggetto, il cui riferimento è assegnato all'oggetto stringa "str". Successivamente, ho provato a concatenare un'altra stringa "Soluzione" con la stringa "Teckpix" utilizzando il metodo "concat ()" della classe String.


Poiché gli oggetti String sono immutabili, non viene apportata alcuna modifica alla stringa "Teckpix" e la nuova stringa "Soluzione" crea un altro oggetto nel pool di costanti di stringhe. Ma il riferimento all'oggetto "Soluzione" non viene catturato da nessun oggetto, quindi il riferimento all'oggetto Soluzione viene perso anche se è ancora presente nel pool di costanti di stringhe. Poiché non viene apportata alcuna modifica all'oggetto Teckpix, quando l'oggetto str a cui ho assegnato il riferimento di Teckpix in precedenza, sarà solo la stringa "Teckpix".

Definizione StringBuffer

La classe "StringBuffer" è la classe peer della classe "String". La classe StringBuffer fornisce più funzionalità alle stringhe. L'oggetto della classe StringBuffer è mutabile, ovvero il suo oggetto può essere modificato. La lunghezza dell'oggetto StringBuffer è espandibile. È possibile inserire i caratteri o le sottostringhe nel mezzo del valore letterale di stringa assegnato all'oggetto StringBuffer o alla fine di esso. StringBuffer alloca spazio per 16 caratteri aggiuntivi quando non è richiesta una lunghezza specifica.

Cerchiamo di capire la mutabilità dell'oggetto StringBuffer con l'aiuto di un esempio:

StringBuffer Sb = new StringBuffer ("Teckpix"); Sb.append ( "Soluzione"); system.out.ln (Sb); // Output Teckpix Solution

Come sappiamo che l'oggetto StringBuffer è mutabile. Il metodo append () modifica l'oggetto StringBuffer Sb a cui inizialmente viene assegnato in precedenza il riferimento all'oggetto "Teckpix". Il metodo append () aggiunge la nuova stringa letterale "Soluzione", alla fine della stringa letterale "Teckpix". Ora, quando l'oggetto Sb sarà l'oggetto stringa modificato "Teckpix Solutions".

  1. La lunghezza dell'oggetto String è fissa ma la lunghezza di un oggetto di StringBuffer può essere aumentata quando richiesto.
  2. L'oggetto String è immutabile, ovvero l'oggetto non può essere riassegnato nuovamente, mentre l'oggetto StringBuffer è mutabile.
  3. L'oggetto String ha prestazioni più lente, mentre l'oggetto StringBuffer è più veloce.
  4. L'oggetto String consuma più memoria mentre gli oggetti StringBuffer consumano meno memoria.
  5. Gli oggetti String sono archiviati in un pool costante mentre gli oggetti StringBuffer sono archiviati nella memoria heap.

Conclusione:

Gli oggetti StringBuffer forniscono più funzionalità alle stringhe rispetto alla classe String. Pertanto, è preferibile lavorare con StringBuffer anziché con la classe String.