Copie 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
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