Immutabilité des Chaînes en Java
Glissez pour afficher le menu
Vous savez déjà que les chaînes de caractères stockent du texte comme les noms de clients, les noms de produits et les messages. Mais ce qui rend les chaînes de caractères particulières en Java, c'est qu'elles sont immuables.
Immuabilité signifie qu'une fois qu'un objet String est créé, son contenu ne peut pas être modifié. Toute opération qui semble modifier une chaîne crée en réalité un nouvel objet String en arrière-plan.
Exemple
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { int stock = 20; String drink = "Espresso"; stock = 15; drink = "Cappuccino"; System.out.println(stock); // 15 System.out.println(drink); // Cappuccino } }
Même si les deux variables ont été réaffectées, elles se comportent différemment en interne. Avec int, la variable stocke directement la valeur — la réaffectation remplace simplement cette valeur. Mais String est un type référence, ce qui signifie que la variable stocke une adresse pointant vers un objet String en mémoire. Lorsque drink = "Cappuccino" est assigné, Java ne modifie pas "Espresso" — il crée un tout nouvel objet String et fait pointer drink vers celui-ci à la place. L'objet original "Espresso" reste inchangé.
Fonctionnement étape par étape
String drink = "Espresso";
Java crée un objet String "Espresso" et drink pointe vers celui-ci.
drink = "Cappuccino";
Java crée un nouvel objet String "Cappuccino", drink pointe maintenant vers le nouveau. "Espresso" n'est pas modifié.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Immutabilité des Chaînes en Java
Vous savez déjà que les chaînes de caractères stockent du texte comme les noms de clients, les noms de produits et les messages. Mais ce qui rend les chaînes de caractères particulières en Java, c'est qu'elles sont immuables.
Immuabilité signifie qu'une fois qu'un objet String est créé, son contenu ne peut pas être modifié. Toute opération qui semble modifier une chaîne crée en réalité un nouvel objet String en arrière-plan.
Exemple
Main.java
123456789101112131415package com.example; public class Main { public static void main(String[] args) { int stock = 20; String drink = "Espresso"; stock = 15; drink = "Cappuccino"; System.out.println(stock); // 15 System.out.println(drink); // Cappuccino } }
Même si les deux variables ont été réaffectées, elles se comportent différemment en interne. Avec int, la variable stocke directement la valeur — la réaffectation remplace simplement cette valeur. Mais String est un type référence, ce qui signifie que la variable stocke une adresse pointant vers un objet String en mémoire. Lorsque drink = "Cappuccino" est assigné, Java ne modifie pas "Espresso" — il crée un tout nouvel objet String et fait pointer drink vers celui-ci à la place. L'objet original "Espresso" reste inchangé.
Fonctionnement étape par étape
String drink = "Espresso";
Java crée un objet String "Espresso" et drink pointe vers celui-ci.
drink = "Cappuccino";
Java crée un nouvel objet String "Cappuccino", drink pointe maintenant vers le nouveau. "Espresso" n'est pas modifié.
Merci pour vos commentaires !