ホームページ > Java > &#&はじめる > よく使用される Java クラス String クラスの詳細な紹介

よく使用される Java クラス String クラスの詳細な紹介

王林
リリース: 2020-07-14 16:44:21
転載
2644 人が閲覧しました

よく使用される Java クラス String クラスの詳細な紹介

一般的に使用されるクラス String

(推奨チュートリアル: java 入門チュートリアル)

String クラスは文字列を表します。 Java プログラム内のすべての文字列リテラル ( "abc" など) は、このクラスのインスタンスとして実装されます。

文字列は定数であり、作成後に値を変更することはできません。文字列バッファーは変更可能な文字列をサポートします。 String オブジェクトは不変であるため、共有できます。

String ソース コード

public final class String
implements java.io.Serializable, Comparable<String>, CharSequence {
}
ログイン後にコピー

String メンバー変数

//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];
ログイン後にコピー

ソース コードから、String の最下層が文字配列を使用して維持されていることがわかります。

メンバー変数は、String クラスの値が Final 型であり変更できないことを認識できるため、値が変更される限り、新しい String 型オブジェクトが生成され、String データを格納する必要はありません。配列の 0 番目の位置から開始します。要素から始まりますが、offset が指す要素から始まります。

(ビデオ チュートリアルの推奨: Java ビデオ チュートリアル)

文字列オブジェクトの作成方法

String s1 = "hello" ; 
String s2 = "world" ;
String s3 = "hello" ;
System. out. println(s1 == s3) ; //true
ログイン後にコピー

S1 と S3 の「hello」と「hello」 s2「world」の「」はメソッド領域の定数プールに存在します。

図に示すように:

よく使用される Java クラス String クラスの詳細な紹介

つまり、 s1==s3

s1 = new String ("hel1o") ;
s2 = new String ("hel1o") ;
System.out.println(s1 == s2) ; //false
System.out.println (s1.equals (s2) ) ; // true
ログイン後にコピー

s1 と s2 は、new とexist を通じて 2 つの String オブジェクトを取得します。ヒープ内ではアドレスが異なります。 s1 と s2 は 2 つの参照であるため、比較されるのはアドレス、s1 != s2 です。

StringのequalsはObjectのequalsを書き換えるもので、Objectのようにアドレスを比較するのではなく値を比較するのでs1.equals(s2)はtrueになります。

rree

以上がよく使用される Java クラス String クラスの詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート