Java -Stringクラス-
文字列は、Stringクラスから生成されたインスタンスに格納されます。
このクラスの初期化や更新には、通常の参照型変数にはない特別な規則があります。
String型変数の初期化
文字列は、Stringクラス内のメンバ変数に格納されます。特定の文字列をインスタンス内に格納する場合は、通常のクラスの場合と同じようにnew演算子を利用します。
new 演算子を使ったString型変数の初期化
String 参照型変数名 = new String("文字列");
String型変数の初期化(文字列リテラルによる方法)
文字列リテラルを代入演算子(=)で代入する方法です。
文字列リテラルを使ったString型の初期化
String 参照型変数名 = "文字列";
Stringクラスは参照型変数を初期化する場合には、文字列リテラルを代入するするという特殊な記述が可能です。(このような記述は通常のクラスでは不可能です)
このような特殊な記述による初期化を行った場合は、新しいインスタンスは生成されません。
String型の等価演算
参照型変数の比較において、等価演算子(==)とequalsメソッドは、多くの場合は、ほぼ同様の意味を持ちます。
しかし、Stringクラスではequalsメソッドがオーバーライドされているため(Objectクラスのequalsメソッドとは)違った意味になります。
等価演算子の場合は、右オペランドと左オペランドのアドレス情報が等しいかどうかを判断します。
それに対して、Stringクラスのequalsメソッドは、2つのオブジェクトのそれぞれのメンバ変数に格納されている文字列が等しいかどうかを出力します。