Maison >Java >Javacommencer >Introduction détaillée à la classe Java couramment utilisée. Classe String
Classe couramment utilisée String
(Tutoriel recommandé : Tutoriel d'introduction à Java)
La classe String représente une chaîne. Tous les littéraux de chaîne dans les programmes Java (tels que "abc" ) sont implémentés en tant qu'instances de cette classe.
Les chaînes sont des constantes et leurs valeurs ne peuvent pas être modifiées après leur création. Les tampons de chaînes prennent en charge les chaînes mutables. Les objets String étant immuables, ils peuvent être partagés.
Code source de la chaîne
public final class String implements java.io.Serializable, Comparable<String>, CharSequence { }
Variable membre de la chaîne
//String的属性值 private final char value[]; //数组被使用的开始位置 private final int offset; //String中元素的个数 private final int count; //String类型的hash值 private int hash; // Default to 0 private static final long serialVersionUID = -6849794470754667710L; private static final ObjectStreamField[] serialPersistentFields = new ObjectStreamField[0];
À partir du code source, on peut voir que la couche sous-jacente de String est maintenue à l'aide d'un tableau de caractères.
Les variables membres peuvent savoir que la valeur de la classe String est finale et ne peut pas être modifiée, donc tant qu'une valeur change, un nouvel objet de type String sera généré et les données String ne démarrent pas nécessairement à partir de la 0ème position du tableau. Il commence par un élément, mais commence à partir de l'élément pointé par offset.
(Tutoriel vidéo recommandé : Tutoriel vidéo Java )
Comment créer un objet chaîne
String s1 = "hello" ; String s2 = "world" ; String s3 = "hello" ; System. out. println(s1 == s3) ; //true
"bonjour" de S1 et S3 et "bonjour " de s2 "monde" existe dans le pool constant de la zone de méthode.
Comme le montre la figure :
Donc s1==s3
s1 = new String ("hel1o") ; s2 = new String ("hel1o") ; System.out.println(s1 == s2) ; //false System.out.println (s1.equals (s2) ) ; // true
s1 et s2 sont deux objets String obtenus grâce à de nouveaux et existent dans le tas, les adresses sont différentes. s1 et s2 sont deux références, donc ce qui est comparé est l'adresse, s1 != s2.
L'égalité de la chaîne réécrit les égaux de l'objet. Il ne compare pas les adresses comme l'objet, mais compare les valeurs, donc s1.equals (s2) est vrai.
3.char c[]= { 's', 'u' , 'n',',', 'j', 'a', 'v' ,'a'} ; String s4 = new String(c) ; String s5 = new String(c,4,4) ; System.out.println(s4) ; //sun java System.out.println(s5) ; //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!