3

重複の可能性:
なぜこれらは==であるが、そうではないのequals()ですか?

Javaでは、「==」は値ではなく参照を比較するために使用され、「equals」は値を比較するために使用されることを知っています。

その後、

int a=100;
int b=100;
boolean c=(a==b);

それならcは偽になりますか?でも前のプロジェクトで覚えているのですが、本当のようです…。

4

4 に答える 4

8

参照ではなくプリミティブを比較しているため、cはtrueです。==プリミティブを値で比較します(値がすべてであるため)。

于 2012-09-20T20:25:30.697 に答える
3

プリミティブには参照が含まれていないため、を使用==すると、すべてのプリミティブデータ型で値を比較できます。オブジェクトには代わりにオブジェクト参照が含まれているため、を使用すると代わりにオブジェクト参照が==比較されます。

100のint値は100等しいので、ctrueになります。

于 2012-09-20T20:27:40.337 に答える
1

cはtrueabがプリミティブであり、それらの値が同じであるためです。

于 2012-09-20T20:26:10.917 に答える
1

Integersですvalue types。したがって、この場合は値を比較するだけなので、cになりますtrue

于 2012-09-20T20:26:41.983 に答える