2019/04/09IT未経験者の僕は、会社の研修でJavaをやっています。事前に「Javaは難しい」と聞いていましたが、やっぱり難しいです。つまづきポイントはあったのですが、今回は「==」と「equals」の使い分けについて書きたいと思います。変数valueがint型で、値が10であればtrueを返し、それ以外であればfalseを返します。false;}なぜ?▼「value」という箱(変数)に「10」という値が入っています。valueが値型の場合「==」で比較します。変数valueがString型で、”hoge”を参照していたとしてもfalseとなる”ことがあります”。false;}参照型の中身の比較をしたい場合はequalsを使います。false;}なぜ?▼参照型は変数にアドレス値が入っています。▼==はアドレス値の比較となるので意図しない結果になります。参照型の中身の比較はequalsを使います。最後にString型の場合、JVMの最適化によって同じ文字列は同じアドレスとなることが多いそうです。そのため==では意図しない結果になる”ことがある”と書きました。String型以外の参照型はもちろんですが、String型の比較であえてequalsを使わない理由はないので、ちゃんと使い分けましょう。記事はアーザスでの導入事例が元になっております。IT関連のコンサルタントおよびご相談はこちらまでお願いいたします。法人様お問い合わせはこちら私たちアーザスは一緒に成長してくれるメンバーを随時募集しております!経験者はもちろん、新卒・未経験の方でも歓迎いたします!新卒採用ご希望の方はこちら中途採用ご希望の方はこちらこの記事を読んで興味を持っていただけましたら、下記のボタンからご購読をお願いします。RSSで購読するfeedlyで購読する記事に関するご意見・ご質問がございましたら、SNS投稿をお願いします。365などITについて「誰でもわかる」ような記事を公開しています。