重複の可能性:
なぜこれらは==であるが、そうではないのequals()
ですか?
Javaでは、「==」は値ではなく参照を比較するために使用され、「equals」は値を比較するために使用されることを知っています。
その後、
int a=100;
int b=100;
boolean c=(a==b);
それならcは偽になりますか?でも前のプロジェクトで覚えているのですが、本当のようです…。
重複の可能性:
なぜこれらは==であるが、そうではないのequals()
ですか?
Javaでは、「==」は値ではなく参照を比較するために使用され、「equals」は値を比較するために使用されることを知っています。
その後、
int a=100;
int b=100;
boolean c=(a==b);
それならcは偽になりますか?でも前のプロジェクトで覚えているのですが、本当のようです…。
参照ではなくプリミティブを比較しているため、cはtrueです。==プリミティブを値で比較します(値がすべてであるため)。
プリミティブには参照が含まれていないため、を使用==
すると、すべてのプリミティブデータ型で値を比較できます。オブジェクトには代わりにオブジェクト参照が含まれているため、を使用すると代わりにオブジェクト参照が==
比較されます。
100のint値は100に等しいので、c
trueになります。
cはtrue
、a
とb
がプリミティブであり、それらの値が同じであるためです。
Integers
ですvalue types
。したがって、この場合は値を比較するだけなので、c
になりますtrue
。