Copia una stringa in Java

Rashmi Patidar 12 ottobre 2023
Copia una stringa in Java

Nel linguaggio Java, una Stringa è un tipo di dati che memorizza una sequenza di caratteri. Una stringa è una classe wrapper che fornisce metodi come compare(), replace() e substring(). Gli oggetti vengono archiviati nella memoria heap ogni volta che un oggetto viene istanziato.

Copia una stringa in Java

Di seguito è riportato il blocco di codice che mostra come copiare una stringa in Java.

public class StringCopy {
  public static void main(String[] args) {
    String first = "First String";
    System.out.println("First initially = " + first);
    String second = first;
    System.out.println("String copy in second = " + second);
    first = "Updated string";
    System.out.println("First after update = " + first);

    String newCopy = String.copyValueOf(first.toCharArray());
    System.out.println("Copy using copyValueOf() = " + newCopy);

    String copyString = new String(first);
    System.out.println("Copy using new = " + copyString);
  }
}

Nel programma sopra, una stringa viene inizializzata nella prima parte dell’operazione. La rappresentazione String first = "First String" crea un’istanza di First String in memoria; inoltre, questo nuovo indirizzo di stringa viene assegnato prima alla variabile. Questo valore viene stampato utilizzando il metodo println().

Ora, la riga String second = first memorizza il primo riferimento nella seconda istanza e stampa il valore della copia in un’altra riga. Di conseguenza, la variabile second contiene il riferimento first. Quindi, il first = "Updated string" cambierà il riferimento del primo dal valore esistente a un’altra stringa nella memoria heap.

Le stringhe Java sono di natura immutabile. Significa che quando viene creata una stringa, è presente nella memoria heap. E quando un altro valore viene assegnato alla prima variabile, non viene sovrascritto. Invece, la variabile ora fa riferimento a un’altra stringa dalla memoria heap. I riferimenti nella memoria dell’heap vengono archiviati nell’heap a meno che il Garbage Collector non entri in azione. La funzione elimina la variabile dal pool di memoria costante quando non fa riferimento a nessuna variabile.

Un altro modo per copiare una stringa utilizza il metodo copyValueOf. È un metodo factory statico che accetta un array di caratteri come input. L’istanza viene prima convertita in un array di caratteri utilizzando la funzione toCharArray. L’istanza della stringa finale viene referenziata da una variabile newCopy e stampata in un’altra riga.

Il terzo modo per copiare una stringa è usare la parola chiave new. Il metodo crea due istanze in memoria: la prima contiene il valore e l’altra variabile copyString memorizza il riferimento della variabile first.

Di seguito è riportato il blocco di codice che risulta dal programma sopra.

Produzione:

First initially = First String
String copy in second = First String
First after update = Updated string
Copy using copyValueOf() = Updated string
Copy using new = Updated string
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

Articolo correlato - Java String