HOWTO · Java

Copie uma string em Java

Este artigo apresenta um método sobre como copiar uma String em Java.

Na linguagem Java, uma String é um tipo de dados que armazena uma sequência de caracteres. Uma string é uma classe de wrapper que fornece métodos como compare(), replace() e substring(). Os objetos são armazenados na memória heap sempre que um objeto é instanciado.

Copie uma string em Java

Abaixo está o bloco de código que mostra como copiar uma string em 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);
  }
}

No programa acima, uma string é inicializada na primeira parte da operação. A representação String first = "First String" cria uma instância de First String na memória; além disso, este novo endereço de string é atribuído primeiro à variável. Este valor é impresso usando o método println().

Agora, a linha String second = first armazena a primeira referência na segunda instância e imprime o valor da cópia em outra linha. Como resultado, a second variável contém a first referência. Então, first = "Updated string" mudará a referência do primeiro valor existente para outro string na memória heap.

Java Strings são imutáveis ​​por natureza. Isso significa que quando uma string é criada, ela está na memória heap. E quando outro valor é atribuído à primeira variável, ele não é substituído. Em vez disso, a variável agora se refere a outra string da memória heap. As referências na memória heap são armazenadas no heap, a menos que o coletor de lixo entre em ação. A função elimina a variável do pool de memória constante quando não é referenciada por nenhuma variável.

Outra forma de copiar uma string usa o método copyValueOf. É um método de fábrica estático que usa um array de caracteres como entrada. A instância é primeiro convertida em um array de caracteres usando a função toCharArray. A instância final da string é referenciada por uma variável newCopy e impressa em outra linha.

A terceira maneira de copiar uma string é usando a palavra-chave new. O método cria duas instâncias na memória: a primeira contém o valor e a outra variável copyString armazena a referência da first variável.

Abaixo está o bloco de código que resulta do programa acima.

Resultado:

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