L'initialisation des chaînes est l'une des parties de base de la programmation. L'initialisation d'une chaîne signifie attribuer une valeur à la variable avant qu'elle ne soit utilisée dans le programme Java. L'initialisation de la chaîne peut être effectuée de deux manières :
La chaîne est un objet en java. La chaîne fait référence à une séquence de caractères. C’est également connu sous le nom de tableau de caractères. Une chaîne est toujours indiquée entre guillemets ; même les guillemets ne font pas partie de la chaîne. L'initialisation de la chaîne s'effectue également en deux étapes, la première est la déclaration et la seconde est l'initialisation. La déclaration de chaîne fait référence à la déclaration d’une chaîne sans attribuer explicitement de valeur. Dans la plupart des cas d'utilisation, la seule déclaration de String ne nécessite aucune initialisation.
PUBLICITÉ Cours populaire dans cette catégorie MAÎTRISÉE JAVA - Spécialisation | 78 séries de cours | 15 tests simulésEn Java, une chaîne est initialisée de plusieurs manières. Soit en utilisant un constructeur, soit en utilisant Literal. Il existe une différence dans l'initialisation de String en utilisant un nouveau mot-clé et en utilisant Literal. L'initialisation de String à l'aide de nouveaux mots-clés crée à chaque fois un nouvel objet Java. Une variable définie mais non initialisée ne peut pas être utilisée dans le programme car elle ne contient aucune valeur.
Initialisation de la chaîne à l'aide du nouveau mot-clé. L'initialisation de String à l'aide d'un nouveau mot-clé crée un nouvel objet dans le tas de mémoire. La chaîne initialisée via un objet est mutable signifie que la valeur de la chaîne peut être réaffectée après l'initialisation.
String strMsg = new String("Be specific towards your goal!");
Lors du lancement d'objets à l'aide du constructeur, les compilateurs Java créent un nouvel objet dans la mémoire tas. La mémoire tas est une mémoire réservée à la JVM.
Initialisation de chaîne à l'aide de littéraux. L'initialisation de la chaîne à l'aide du littéral crée un objet dans la zone de mémoire regroupée.
String strMsg = "Be specific towards your goal!";
Lors de l'initialisation de String à l'aide d'un littéral et de la valeur qui lui est attribuée déjà initialisée dans une autre String. Dans un tel scénario, la chaîne créée via Literal ne crée pas de nouvel objet. Il vient de transmettre la référence à l'objet créé précédemment.
Voici les différents exemples d'initialisation de chaîne en Java.
Dans la chaîne créée ci-dessous, les deux chaînes sont créées à l'aide du littéral.
Code :
String ObjStringFirst="Welcome"; String ObjStringSecond="Welcome";
Dans la chaîne ci-dessus, nous créons des objets en utilisant String Literal. Dans une telle situation, si l’objet existe déjà avec la même valeur, il renverra le même objet ; sinon, cela créera un nouvel objet.
Dans l'exemple ci-dessous, nous pouvons voir comment les chaînes sont initialisées.
Code :
public class StringExample { public static void main(String[] args) { String nameFirst = "Alister"; String nameSecond = "Campbell"; String nameThird = new String("Adam"); String nameFourth = new String("Martin"); //String nameFifth; String strNullFirst = null; String strNullSecond = null; String strNullThird = null; System.out.println("String initialized :"); //printing variable which are initialized System.out.println("First : " + nameFirst); System.out.println("Second : " + nameSecond); System.out.println("Third : " + nameThird); //printing variable which are declared but not initialized //System.out.println("String declared but not initialized :"); //System.out.println("Fifth : " + nameFifth); } }
Sortie :
Dans cet exemple, une déclaration de la variable String est donnée. Il contient une variable déclarée mais non initialisée lors de la compilation du programme.
Code :
public class StringExample { public static void main(String[] args) { String nameFirst; //printing variable which are declared but not initialized System.out.println("String declared but not initialized :"); System.out.println("Fifth : " + nameFirst); } }
Sortie :
Le résultat du programme ci-dessus est donné ci-dessous. Le programme ci-dessus générera l’erreur lors de la compilation. La chaîne est déclarée mais pas initialisée.
Après la déclaration String, si une valeur est attribuée ultérieurement à la variable String déclarée, alors la compilation ne générera aucune erreur (car l'initialisation de String se déroule en deux parties). Le premier est une déclaration et le second est une affectation.
Dans cet exemple, partons de l'initialisation String avec des valeurs vides. Toutes les variables String initiées via des valeurs vides auront des objets différents pour les trois, car String initialisé via Literal créera un objet dans le pool de chaînes tandis que String initialisé via un nouveau mot-clé créera des objets dans la zone de tas de mémoire.
Code :
public class StringExample { public static void main(String[] args) { String strVal1 = ""; String strVal2 = new String(); String strVal3 = new String(""); //printing variable which are initialized with empty values System.out.println("String Values :"); System.out.println("First : " + strVal1); System.out.println("Second : " + strVal2); System.out.println("Third : " + strVal3); } }
Sortie :
Dans le programme ci-dessus, même l'objet de Strings est différent, mais la valeur attribuée à String est la même. Le résultat ci-dessous montre comment les valeurs vides sont attribuées à chaque variable de chaîne.
Dans le programme ci-dessous, une comparaison des chaînes initialisées ci-dessus est donnée. Utiliser ici trois façons de comparer la chaîne.
1. == operator: In java == operator compare the references, not the values.
2. equals() method: It compares the variable’s value, not the references; hence, if the value matches both the String variable, it returns true other false.
3. compareTo() method: compareTo() method check the values & if values are identical then it return 0 otherwise it return + & – based on the below given comparison.
Code:
public class StringExample { public static void main(String[] args) { String strVal1 = ""; String strVal2 = new String(); String strVal3 = new String(""); //printing variable which are initialized with empty values System.out.println("String Values :"); System.out.println("First : " + strVal1); System.out.println("Second : " + strVal2); System.out.println("Third : " + strVal3); System.out.println(" \nComparing strings using == operator :"); System.out.println("Comparing first two strings :"); System.out.println(strVal1 == strVal2); System.out.println("Comparing last two strings :"); System.out.println(strVal2 == strVal3); System.out.println("Comparing first & last strings :"); System.out.println(strVal1 == strVal3); System.out.println(" \nComparing strings using equals method :"); System.out.println("Comparing first two strings :"); System.out.println(strVal1.equals(strVal2)); System.out.println("Comparing last two strings :"); System.out.println(strVal2.equals(strVal3)); System.out.println("Comparing first & last strings :"); System.out.println(strVal1.equals(strVal3)); System.out.println(" \nComparing strings using compareTo method :"); System.out.println("Comparing first two strings :"); System.out.println(strVal1.compareTo(strVal2)); System.out.println("Comparing last two strings :"); System.out.println(strVal2.compareTo(strVal3)); System.out.println("Comparing first & last strings :"); System.out.println(strVal1.compareTo(strVal3)); } }
Output:
The output of the comparing string program is given below. It contains the output after comparing the Strings in three different ways; thus, outcomes of the comparison are also different according to the method applied.
The above-given article explains the initialization of String & different types of ways to initialize the String in java. Also given examples in the article describe the internal creation of objects when initiating String using Literal. It also describes the difference between declaration & initialization.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!