-5

重複の可能性:
文字列が文字列と等しくない?
Javaの一部の文字列で参照比較(==)が機能するのはなぜですか?

誰かが私に次のJavaコードを説明できますか

String a = "1";
if(a == "1") {
//print compare 1 is true;
} else { 
//print compare 1 is false;
}

if(a.equals("1")) {
//print compare 2 is true;
} else { 
//print compare 2 is false;
}

それは次のようになります

compare 1 is false
compare 2 is true

私が持っている唯一の説明は、値自体ではなくメモリアドレスを比較することです。しかし、よくわかりません。光を当ててください。in .Net == 演算子は、文字列の内容を比較するためにオーバーロードされています。

4

2 に答える 2

3

use "1".equals(a)、 String はオブジェクトなのでequals()比較に使用

于 2012-12-24T03:48:42.650 に答える
0

演算子が「同じオブジェクトですか?」という==比較であることは理解しました。

objectaは定数 string と同じオブジェクトではありません"1"

だからfalseを返す

于 2012-12-24T03:50:49.963 に答える