Java >> Tutoriel Java >  >> Tag >> String

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 ,

  1. En utilisant String Literal
  2. 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 :
    1. 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).
    2. 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

Balise Java