Copier une chaîne en Java
Dans le langage Java, une String
est un type de données qui stocke une séquence de caractères. Une chaîne est une classe wrapper qui fournit des méthodes telles que compare()
, replace()
et substring()
. Les objets sont stockés dans la mémoire heap
à chaque fois qu’un objet est instancié.
Copier une chaîne en Java
Vous trouverez ci-dessous le bloc de code qui vous montre comment copier une chaîne 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);
}
}
Dans le programme ci-dessus, une chaîne est initialisée sur la première partie de l’opération. La représentation String first = "First String"
crée une instance de First String
dans la mémoire ; de plus, cette nouvelle adresse de chaîne est d’abord affectée à la variable. Cette valeur est imprimée en utilisant la méthode println()
.
Maintenant, la ligne String second = first
stocke la première référence dans la deuxième instance et imprime la valeur de copie dans une autre ligne. Par conséquent, la variable second
contient la first
référence. Ensuite, le first = "Updated string"
changera la référence du premier de la valeur existante à une autre chaîne dans la mémoire du tas.
Les chaînes Java sont de nature immuable. Cela signifie que lorsqu’une chaîne est créée, elle se trouve dans la mémoire du tas. Et lorsqu’une autre valeur est affectée à la première variable, elle n’est pas remplacée. Au lieu de cela, la variable fait maintenant référence à une autre chaîne de la mémoire de tas. Les références dans la mémoire du tas sont stockées dans le tas à moins que le ramasse-miettes n’entre en action. La fonction vide la variable du pool de mémoire constante lorsqu’elle n’est référencée par aucune variable.
Une autre façon de copier une chaîne utilise la méthode copyValueOf
. C’est une méthode d’usine statique qui prend un tableau de caractères en entrée. L’instance est d’abord convertie en un tableau de caractères à l’aide de la fonction toCharArray
. L’instance de chaîne finale est référencée par une variable newCopy
et imprimée sur une autre ligne.
La troisième façon de copier une chaîne consiste à utiliser le mot-clé new
. La méthode crée deux instances en mémoire : la première contient la valeur, et l’autre variable copyString
stocke la référence de la variable first
.
Ci-dessous se trouve le bloc de code qui résulte du programme ci-dessus.
Production:
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