stryhのノート ~stryh/changelog

オブジェクトの比較

新人社員が今Javaの研修中。

で、なんか困っていたら上記のようなコードでif文で評価している部分が何で意図する動きにならないのか悩んでいた。

本人としてはif文がtrueを返して評価されると思っていたんでしょう。

確かに型が同じだから大丈夫な気がするが、Javaではnewすると新たにメモリー上に確保する。

s2が

という式であればif文はtrueを返す。

オブジェクトの比較は参照先が同じかを比較(Cでいうポインターかな?)。

もし、s2に「new String(“hoge”)」でStringのインスタンスを代入し、比較をObjectクラスのequalsメソッドを使用すればtrueを返す。

こんな感じ?

初々しい悩みですな~。

URL :
TRACKBACK URL :

Leave a reply

*
*
* (公開されません)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

Return Top