いつもこちらでお世話になっています。
文字列の扱いについて質問です。
Java
1String str1 = "hoge"; 2String str2 = "hoge"; 3String str3 = new String("hoge"); 4 5System.out.println( str1 == str2 ); 6System.out.println( str2 == str3 ); 7System.out.println( str1.equals( str3 ) );
上記のように、文字列を3つ用意し、それぞれを比較した結果を出力するプログラムがあります。
「"~"
で囲われた文字列は、常にnew String()
されて生成される」
という認識だったので、出力結果は
false false true
だと思っていたのですが、実際は
true false true
でした。
str3
は明らかに違うというのは分かるのですが、
str1
とstr2
は別のインスタンスではなく、同一インスタンスになるのですか?
メカニズム等分かる方、教えてください!
回答5件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/02 06:39
2015/12/02 06:56