Maison >Java >Javacommencer >Introduction détaillée à la classe Java couramment utilisée. Classe String

Introduction détaillée à la classe Java couramment utilisée. Classe String

王林
王林avant
2020-07-14 16:44:212651parcourir

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 :

Introduction détaillée à la classe Java couramment utilisée. Classe String

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[]= { &#39;s&#39;, &#39;u&#39; , &#39;n&#39;,&#39;,&#39;, &#39;j&#39;, &#39;a&#39;, &#39;v&#39; ,&#39;a&#39;} ;
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!

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