javaで値やオブジェクトの比較をよく行うと思うのですが、
== と equals で比較できるものできないものを具体的に教えていただきたいです。
例)
int型 == int型 true
String型 == String型 false
など、、
また、参考URLがあれば貼っていただけると幸いです、
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
プリミティブ型(byte,short,int,long,float,double,char,boolean)にequalsは使えません(そもそもメソッドというものを持たない)。==を使っての比較になります。
Javaにおいてはその他はすべて参照型になります。プリミティブ値の配列も参照型です。==を使った場合、「両辺の参照型変数が参照しているオブジェクトが同じものである場合」のみtrueを返します。Stringの表す文字列が同じものでも、参照しているオブジェクトが異なる場合はfalseになります。(参照:文字列と文字列の比較)
参照型の中身が等しいかどうかを判定する場合はequalsメソッドを使います。ただし、equalsの判定はデフォルトでは==での比較と全く同じです。Stringなどの場合、適切に中身が等しいことを判定できるようにequalsメソッドをオーバーライドしています。自作クラスでequalsを使って比較したい場合、equalsメソッドを適切にオーバーライドする必要があります。
投稿2016/05/24 01:28
編集2016/05/24 01:33総合スコア20651
0
ベストアンサー
基本データ型
boolean,char,byte,short,int,long,float,double
は==で比較が可能です。
それ以外のデータ型はすべてequalsを使用してください。
投稿2016/05/24 01:27
総合スコア257
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/24 01:41 編集
2016/05/24 02:24
2016/05/24 03:14
2016/05/24 04:43
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/05/24 02:27