【初心者】Java質問・相談スレッド78【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0135デフォルトの名無しさん
2005/12/25(日) 20:30:48言語仕様に通常も何もないわけだが。
リテラルがらみの言語仕様をまとめると以下のような感じだな。
String s = "hoge";と定義されているとき、
1.リテラル文字列
→同じオブジェクトへの参照を表現する。
s == "hoge" → true
2.定数式によって計算される文字列
→コンパイル時に計算され,リテラルであるかのように扱われる。
s == ("ho" + "ge") → true
3.実行時に計算される文字列
→新しく生成されるものであって,別の文字列とする。
String ge = "ge";
s == ("ho" + ge) → false
4.計算された文字列を明示的に収容(intern)した結果
→同じ内容をもつ既存のリテラル文字列と同じ文字列とする。
String ge = "ge";
s == ("ho" + ge).intern() → true
■ このスレッドは過去ログ倉庫に格納されています