Maison  >  Article  >  Java  >  Comment utiliser la classe String de Java

Comment utiliser la classe String de Java

WBOY
WBOYavant
2023-04-19 13:19:031800parcourir

Comment utiliser la classe String de Java

1. Comprendre String

1. String dans le JDK

Tout d'abord, jetons un coup d'œil au code source de la classe String dans le JDK. Vous pouvez voir que la classe String est finalement modifiée. , ce qui signifie que la classe String ne peut pas être héritée. String n'a pas de sous-classes. De cette façon, tous ceux qui utilisent JDK utilisent la même classe String. Si String peut être hérité, tout le monde peut étendre String et la chaîne utilisée par. tout le monde n'est pas Dans la même version, deux personnes différentes utilisent la même méthode et affichent des résultats différents, ce qui rend impossible le développement du code. L'héritage et le remplacement de méthode apportent non seulement de la flexibilité, mais apportent également de nombreuses sous-classes.

Comment utiliser la classe String de Java2. Quatre façons de créer une chaîne

Première méthode : affectation directe (couramment utilisée)

String str = " bonjour mot "


Deuxième méthode : générer des objets via la méthode de construction

String str1 = new String(" bonjour word ");


Méthode 3 : générer un objet via un tableau de caractères

char[] data = new char[]{'a', 'b','c'};


Méthode 4 : via une méthode statique de chaîne valueOf (n'importe quelle type de données) = > Convertir en chaîne (couramment utilisé)

String str2 = String.valueOf(10);



Comment utiliser la classe String de Java3 Littéral de chaîne

Literal : valeur directement écrite C'est ce qu'on appelle littéral

10 - > 10.1 ---> double littéral

true --> littéral booléen
" abc " - > Littéral de chaîne
Le littéral d'une chaîne est en fait un objet de chaîne
String str = « bonjour mot » ;
À l'heure actuelle, il s'agit à la fois d'une chaîne littérale et d'un objet chaîne. Afin de faciliter la compréhension, faites un dessin. À ce stade, pour faciliter la compréhension, nous pensons d'abord qu'il est stocké sur le tas, mais en fait. il est stocké dans la zone de méthode. Si str2 = "Hello" à ce moment, cela n'affectera pas la sortie de str, car Hello entouré de " " est également un objet chaîne, indiquant qu'un nouvel espace a été ouvert sur. le tas à ce moment-là, et str2 enregistre l'espace d'adressage du nouvel objet à ce moment, ce qui n'a aucun effet sur str



4 La comparaison de chaînes est égale
Comment utiliser la classe String de JavaTous les types de données de référence sont comparés lorsqu'ils sont égaux, utilisez la méthode égale pour comparer. Les classes couramment utilisées dans le JDK ont remplacé la méthode égale. Vous pouvez l'utiliser directement
Le type de données de référence utilise == pour comparer les adresses
L'image ci-dessous montre deux références pointant vers le même espace d'adressage. est lié au pool constant de chaînesComment utiliser la classe String de Java

La figure ci-dessous génère deux objets et deux espaces d'adressage. L'utilisation de == renvoie false


La taille de comparaison d'égal à égal est une comparaison sensible à la casse

Comment utiliser la classe String de Java La méthode equalsIgnoreCase n'est pas Case. -comparaison sensible

Comment utiliser la classe String de Java
2. Pool de constantes de chaîne
Comment utiliser la classe String de Java1. Qu'est-ce qu'un pool de constantes de chaîne ? Un pool de constantes de chaîne sera maintenu si l'objet n'existe pas dans le tas, un objet chaîne sera généré et ajouté. le pool de constantes de chaîne ; lorsque la méthode d'affectation directe est utilisée pour générer un objet chaîne, la JVM trouve la référence. Le contenu pointé existe déjà dans le pool de constantes. À ce stade, il n'est pas nécessaire de créer un nouvel objet chaîne. mais réutilisez directement l'objet existant. C'est pourquoi les trois références dans l'image ci-dessus pointent vers la même adresse

Comment utiliser la classe String de Java Lorsque Lorsque l'objet est généré pour la première fois, il n'y a rien dans le pool constant, donc un objet chaîne est généré. et stocké dans le pool constant Lorsque l'objet est généré pour la deuxième et la troisième fois, la JVM constate que le même contenu existe déjà dans le pool constant. Elle ne générera plus de nouveaux objets et pointera directement vers le même espace d'adressage que str1.

    Comment utiliser la classe String de Java
    Le programme est exécuté de droite à gauche. À ce stade, le côté droit de la première ligne de code est une constante chaîne, qui est également un objet chaîne, alors ouvrez d'abord un espace dans le pool de constantes, puis créez une nouvelle chaîne. L'objet est stocké et le programme est exécuté vers la gauche. Lorsque le nouveau mot-clé est rencontré, un nouvel objet est créé et stocké dans le tas. Ensuite, str1 pointe vers l'objet dans le tas. aux deuxième et troisième lignes de code, on constate que le pool constant a été Si l'objet existe, il ne sera plus créé Lorsque le nouveau mot-clé est rencontré, un nouvel objet sera créé. :
    Comment utiliser la classe String de Java

    2. Méthode de pooling manuel

    La méthode interne fournie par la classe String, il s'agit d'une méthode locale :
    Comment utiliser la classe String de Java
    Appel La méthode interne enregistrera l'objet pointé par la référence de chaîne actuelle dans le pool de constantes de chaîne. . Il existe deux situations :
    1. Si l'objet existe déjà dans le pool constant actuel, aucun nouvel objet ne sera généré et renvoyé dans l'objet String
    2. Si l'objet n'existe pas dans le pool constant actuel, ajoutez l'objet au pool et renvoyez l'adresse après être entré dans le pool.

    1. Jetez un œil au résultat des lignes de code suivantes
    Comment utiliser la classe String de Java
    Parce que la méthode interne a une valeur de retour, str1 appelle uniquement la méthode interne à ce moment et ne reçoit pas la valeur de retour, donc str1 pointe toujours vers l'objet dans le tas, str2 Pointe vers l'objet dans le pool constant, donc il renvoie false
    Comment utiliser la classe String de Java
    Tant que vous recevez la valeur de retour de l'appel de la méthode interne, elle retournera true ; l'objet pointé par str1 est ajouté manuellement au pool, et le pool a déjà l'objet, laissez directement str1 pointer vers l'objet
    Comment utiliser la classe String de Java
    2. Regardez la sortie des lignes de code suivantes
    Comment utiliser la classe String de Java
    Lors de la saisie manuelle du pool, il n'y a rien dans le pool, alors déplacez-le directement dans le pool constant
    Comment utiliser la classe String de Java

    Comment utiliser la classe String de Java 3. Immuabilité des chaînes


    1 Pourquoi est-il immuable

    Remarque : la soi-disant immuabilité des chaînes fait référence à l'immuabilité. du contenu de la chaîne, non pas que la référence de la chaîne ne puisse pas être modifiée

    À quoi l'immuabilité fait référence ici. Ils sont "hello", "world", "helloworld", "!!!", et l'épissé "helloworld !!!" Ce sont des objets chaîne créés. Une fois ces objets déclarés, leur contenu ne peut pas être modifié, mais la référence peut être modifiée à un moment donné, à un autre moment, elle pointe vers helloworld, et maintenant elle pointe vers helloworld. à bonjour le monde ! ! ! , tout cela est possible
    Comment utiliser la classe String de Java
    Une chaîne n'est qu'un tableau de caractères -> char[], la chaîne est en fait stockée dans le tableau de caractères. Pourquoi le contenu de la chaîne ne peut-il pas être modifié ? Jetons un coup d'œil au code source de la chaîne et découvrons-le.
    Comment utiliser la classe String de Java
    Nous pouvons voir que le tableau de caractères à l'intérieur de String est encapsulé. Ce tableau de caractères n'est pas accessible depuis l'extérieur de la classe String, encore moins en modifiant le contenu de la chaîne
    String str = " hello ";Comment utiliser la classe String de Java


    2 .Comment pour modifier le contenu de la chaîneComment utiliser la classe String de Java

    1. Détruisez l'encapsulation du tableau de valeurs par réflexion au moment de l'exécution

    2. Remplacez la classe StringBuilder ou StringBuffer - - n'est plus du même type

    a.StringBuilder : thread dangereux, performances élevées

    b .StringBuffer : thread-safe, mauvaises performances
    De plus, l'utilisation des deux classes est exactement la même

    Si vous devez épisser des chaînes fréquemment, utilisez la méthode append de la classe StringBuilder. Un seul objet est généré ici, qui changera après un certain temps. Cela devient bonjour, et bientôt cela devient bonjour tout le monde


    3. Utilisation spécifique de la classe StringBuilderComment utiliser la classe String de Java

    La classe StringBuilder et String sont deux classes indépendantes qui ont été créées pour résoudre le problème de l'épissage des chaînes.

    Classe StringBuilder et conversion String Mutual des classes :

    1. StringBuilder peut être converti en classe String en appelant la méthode toString


    2. La classe String peut être convertie en classe StringBuilder, en utilisant le constructeur ou la méthode append de StringBuilder Comment utiliser la classe String de Java.


    Comment utiliser la classe String de Java Autres méthodes couramment utilisées :
    a. Opération d'inversion de chaîne, reverse() fournie par sb;Comment utiliser la classe String de Java

    b. Supprimez la plage de données spécifiée, supprimez (int start, int end); supprimez tout le contenu du début à la fin, fermé à gauche et ouvert à droite
    Comment utiliser la classe String de Java

    c. , chaque type de données) : Commencez l'insertion à partir de la position de l'index de départ, et l'index de départ de l'insertion est start
    Comment utiliser la classe String de Java

    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!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer