Ce que vous devez savoir sur l’utilisation des chaînes en Java
Une fois que vous aurez commencé à apprendre Java, la classe String attirera votre attention, grâce à ses propriétés uniques.
Vous pouvez créer et manipuler des chaînes en Java plus facilement que dans d'autres langages. C'est parce que la classe String offre diverses fonctionnalités.
Sur la base de ces fonctionnalités, il existe plusieurs méthodes pour générer et modifier des chaînes en fonction de vos préférences et de vos besoins. De même, beaucoup dépendra de votre application et de l'endroit où les chaînes doivent être utilisées.
En quoi les chaînes Java sont-elles différentes?
Si vous avez déjà travaillé avec le langage C, vous savez que les chaînes en C sont un tableau de caractères (caractères). D'autre part, les chaînes Java sont immuables et contiennent des caractères Unicode.
L'une des fonctionnalités clés qui rendent les chaînes en Java uniques est la concaténation. Utilisez simplement l'opérateur d'addition «+» pour joindre deux chaînes ou plus. C'est quelque chose que vous ne pouvez pas faire avec d'autres objets Java, tels que Point ou Circle .
De plus, comme mentionné précédemment, les chaînes Java sont immuables, c'est-à-dire que vous ne pouvez pas les modifier. Par exemple, des méthodes comme toUpperCase () et toLowerCase () génèrent une chaîne complètement nouvelle, au lieu de modifier le contenu de la chaîne existante. Maintenant, votre code renverra cette chaîne nouvellement générée.
Un autre domaine où les chaînes sont différentes concerne l'utilisation de caractères nuls pour terminer des chaînes dans des langages comme C. En Java, les chaînes sont des objets pris en charge par des tableaux de caractères. Si vous cherchez à lire le contenu de votre chaîne de la manière dont les tableaux de caractères les représentent, l'utilisation de la méthode toCharArray () fera l'affaire.
La comparaison de chaînes en Java est également plus pratique que dans d'autres langages de programmation. Plutôt que d'écrire un long bloc de code pour comparer des chaînes, vous pouvez utiliser la méthode equals () pour comparer deux chaînes ou plus utilisées dans n'importe quel programme. Ceci est principalement dû au fait que, en Java, la méthode equals est remplacée par la classe String, ce qui fait de la comparaison de chaînes un jeu d'enfant.
Sur une note similaire, la recherche dans les sous-chaînes en Java est également sans tracas. Lorsque vous utilisez des expressions régulières ou des méthodes telles que lastIndexOf () et indexOf (), vous pouvez rechercher des segments de chaînes et renvoyer des valeurs une fois qu'une correspondance est identifiée. Vous pouvez également utiliser des expressions régulières pour couper et diviser différentes chaînes et les utiliser individuellement pour un large éventail d'utilisations dans n'importe quel programme.
Comment les chaînes sont-elles stockées dans la mémoire?
Maintenant que vous savez ce qui rend les chaînes en Java différentes et utiles, explorons la classe String. Si vous connaissez une chose ou deux sur la gestion de la mémoire en Java, vous devez avoir traité avec ses deux entités clés: le tas et la pile.
La pile est utilisée pour exécuter des processus et des opérations après avoir été appelée par un programme Java, tandis que le tas stocke le contenu – nécessaire pour exécuter et exécuter le code efficacement. Alors, en quoi la gestion de la mémoire est-elle pertinente dans le cas des chaînes?
En effet, la classe String et les littéraux de chaîne en Java reçoivent un traitement différent. Cela indique que les littéraux de chaîne se voient attribuer un espace de stockage unique dans la mémoire du tas, appelé pool de constantes de chaîne. Par conséquent, chaque fois que vous utilisez des chaînes littérales pour créer des objets chaîne en Java, le pool de constantes de chaîne les stocke.
Au contraire, lorsque vous utilisez le mot-clé new pour créer des objets chaîne, Java les traitera comme n'importe quel autre objet et les enverra au tas pour stockage.
Exemple de littéraux de chaîne
Maintenant que vous en savez suffisamment sur les objets chaîne, passons en revue un exemple de littéraux chaîne:
public class muostrings {
public static void main(String args[])
{
String himuo = "Hello World from MUO";
System. out .println (himuo);
}
}

Ici, la chaîne littérale a créé l'objet String avec le contenu «Hello World from MUO». Java enverra cet objet au pool de constantes de chaîne.
Utilisation du nouveau mot-clé
Vous pouvez également utiliser le nouveau mot-clé pour générer des objets String.
L'objet string de la chaîne «himuo» avec le contenu «Hello World from MUO» a été généré par une chaîne littérale et sera envoyé au String Constant Pool. De même, les objets chaîne peuvent également être créés à l'aide du nouveau mot-clé comme suit:
public class muostringsobj {
public static void main(String args[]) {
char [] strArr = { 'M', 'O', 'U'};
String jStr = new String(strArr);
System. out .println( jStr );
}
}

L'exemple ci-dessus utilise le mot-clé new pour créer un objet chaîne. Comme expliqué précédemment, ils sont envoyés au tas, où ils sont stockés avec d'autres variables et objets en attente d'être exécutés par le programme.
À présent, vous devez être curieux de connaître le pool de constantes de cordes, et à juste titre. Il alloue un espace de pool aux objets en fonction du contenu de l'objet chaîne. Une fois que le pool de constantes de chaîne a reçu des objets, il les vérifie pour vérifier si deux objets contiennent exactement le même contenu.
Deux objets chaîne peuvent-ils stocker le même contenu?
Lorsqu'un littéral de chaîne est utilisé pour créer un nouvel objet, la machine virtuelle Java (JVM) examine le contenu de l'objet et évalue s'il existe déjà dans le pool. Lorsqu'un objet contient du contenu déjà présent dans le pool, la référence de l'objet est renvoyée sans créer le nouvel objet. Si vous devez créer le nouvel objet, vous devez vous assurer que le contenu est distinct et unique.
Cependant, si vous utilisez le nouveau mot-clé pour créer une nouvelle chaîne, elle sera traitée différemment. Lorsque vous utilisez le mot-clé new pour créer une nouvelle chaîne, elle est générée, qu'elle contienne ou non le même contenu que la chaîne existante.
Cela indique que deux objets chaînes existants stockés dans la mémoire du tas sont autorisés à impliquer le même contenu; ceci est différent des objets de chaîne stockés dans le pool de constantes de chaîne. Vous pouvez également le prouver avec l'opérateur «==»; il renvoie vrai si deux objets avec la même adresse physique sont comparés.
public class comparingStrngs {
public static void main(String[] args)
{
String firstLiteral = "muo1";
String secondLiteral = "muo1";
System. out .println(firstLiteral == secondLiteral);
String firstKeyword = new String("muo2");
String secondKeyword = new String("muo2");
System. out .println(firstKeyword == secondKeyword);
}
}

Vous pouvez désormais comprendre facilement les chaînes en Java
Dans cet article, vous avez appris comment les chaînes en Java sont différentes, comment utiliser les chaînes en Java, la gestion de la mémoire des chaînes en Java et d'autres détails importants sur le fonctionnement des chaînes. Pour tester votre compréhension, pourquoi ne pas écrire un programme Java pour concaténer deux chaînes?