Copiar una cadena en Java

Rashmi Patidar 12 octubre 2023
Copiar una cadena en Java

En el lenguaje Java, una String es un tipo de datos que almacena una secuencia de caracteres. Una cadena es una clase contenedora que proporciona métodos como compare(), replace() y substring(). Los objetos se almacenan en la memoria heap cada vez que se crea una instancia de un objeto.

Copiar una cadena en Java

A continuación se muestra el bloque de código que le muestra cómo copiar una cadena en 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);
  }
}

En el programa anterior, una cadena se inicializa en la primera parte de la operación. La representación String first = "First String" crea una instancia de First String en la memoria; Además, esta nueva dirección de cadena se asigna primero a la variable. Este valor se imprime utilizando el método println().

Ahora, la línea String first = "First String" almacena la primera referencia en la segunda instancia e imprime el valor de la copia en otra línea. Como resultado, la second variable contiene la first referencia. Entonces, el first = "Updated string" cambiará la referencia del primero del valor existente a otra cadena en la memoria del montón.

Las cadenas de Java son de naturaleza inmutable. Significa que cuando se crea una cadena, está en la memoria del montón. Y cuando se asigna otro valor a la primera variable, no se anula. En cambio, la variable ahora se refiere a otra cadena de la memoria del montón. Las referencias en la memoria del montón se almacenan en el montón a menos que el recolector de basura entre en acción. La función elimina la variable del grupo de memoria constante cuando no se hace referencia a ninguna variable.

Otra forma de copiar una cadena usa el método copyValueOf. Es un método de fábrica estático que toma un array de caracteres como entrada. La instancia se convierte primero en un array de caracteres utilizando la función toCharArray. La instancia de la cadena final es referenciada por una variable newCopy y se imprime en otra línea.

La tercera forma de copiar una cadena es utilizando la palabra clave new. El método crea dos instancias en la memoria: la primera contiene el valor y la otra variable copyString almacena la referencia de la first variable.

A continuación se muestra el bloque de código que resulta del programa anterior.

Producción :

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

Artículo relacionado - Java String