Quelles sont les différentes manières de créer un objet chaîne en Java ?
Ici, nous discutons de deux façons de créer l'objet chaîne en Java ,
- En utilisant String Literal
- En utilisant un nouveau mot clé
Maintenant, nous allons discuter de chaque manière donnée ci-dessus en détail à l'aide d'un exemple.
1) Création d'un objet chaîne à l'aide d'un littéral de chaîne
- String Literal est une séquence appropriée de caractères.
- Le littéral de chaîne est entouré de guillemets à partir du jeu de caractères source.
- Nous devrions opter pour String Literal lorsque nous voulons représenter une séquence appropriée de caractères pris ensemble.
- Chaque littéral de chaîne doit se terminer par le caractère "\n" (null).
- Une chaîne Littéral est créée en Java en utilisant des guillemets doubles ("").
Exemple :
String str = "Java Programming";
Remarque :
- Chaque fois que nous créons un littéral de chaîne, la machine virtuelle Java (JVM) vérifie d'abord le "pool de constantes de chaîne" , il y a donc deux cas :
- Si le littéral de chaîne existe déjà dans le pool, dans ce cas, une référence à l'instance du pool est renvoyée (c'est-à-dire qu'aucune nouvelle instance n'est créée pour le littéral de chaîne existant).
- Sinon, le littéral de chaîne n'existe pas déjà dans le pool, dans ce cas, une nouvelle instance de chaîne est créée et placée dans le pool (c'est-à-dire qu'une nouvelle instance est créée pour le nouveau littéral de chaîne).
- Les objets String sont stockés dans une zone de mémoire spéciale appelée "String Constant Pool" .
Exemple :
// Java program to demonstrate the example of // creating string object by using String Literal. public class CreateStringObjectByStringLiteral { public static void main(String[] args) { // Creating a string literal and placed in // memory "string constant pool" String str1 = "Java Support OOPS Concepts"; System.out.println(str1); // Again,we create the same literal ("Java Support OOPS // Concepts") then in that case a new instance is not created // because JVM check the "string constant pool" first before // creating an object if exists then return the same object String str2 = "Java Support OOPS Concepts"; System.out.println("Return the same already placed in SCP :" + " " + str2); } }
Sortie
Java Support OOPS Concepts Return the same already placed in SCP : Java Support OOPS Concepts
2) Créer un objet String en utilisant le mot-clé "new"
Ici, nous allons voir la deuxième catégorie en utilisant "nouveau" mot-clé et comment créer un objet chaîne à l'aide du "nouveau" mot-clé.
Il s'agit d'un type similaire de création d'autres objets en utilisant "nouveau" mot-clé.
Exemple :
String str = new String("Java Programming");
Dans l'exemple ci-dessus, deux objets sont créés avec une référence (c'est-à-dire qu'un objet est pour "string constant pool" et un autre objet est pour "heap" ).
Remarque :
- Chaque fois que nous créons un objet String en utilisant "new" mot-clé, la machine virtuelle Java (JVM) crée un nouvel objet chaîne dans "Heap Memory" et le littéral "Programmation Java" sera placé dans "String Constant Pool" et la variable "str" fera référence à l'objet chaîne placé dans "Heap Memory" .
- Lorsque nous créons des objets chaîne en utilisant "new" mot-clé afin que les objets soient stockés dans une zone de mémoire spéciale appelée "Heap" .
Exemple :
// Java program to demonstrate the example of // creating string object by using "new" keyword. public class CreateStringObjectByNewKeyword { public static void main(String[] args) { // Creating a string object and placed in // memory "Heap" String str = new String("Hello, Java"); // In the above case two new instance is created // [one is for SCP and other is for Heap] along with // one reference System.out.println(str); } }
Sortie
Hello, Java