サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 17
qiita.com/Toshimichi
面接官「Stringを==とequalsで比較する際の違いを教えてください」 自分「== はインスタンスの同一性を比較する一方、equalsはObjectによって定義されるメソッドで、同値性の比較に使われます。」 自分「従ってStringを比較するとき、==では同じ文字列でも違うインスンスの場合にfalseが返って来てしまうことがあるため、通常はequalsを使用します。」 面接官「はい、完璧です。」 自分「より詳細に言うと、Stringを定数として使用する場合はJVMのLDC命令によって定数プールからインスタンスが確保されるため、これら定数プールの文字列を比較する場合は==でもtrueが返ってきます。」 自分「逆に、文字列をプログラムで動的に構築する場合は定数プールとは関係ない全く新しいStringインスタンスが構築されるため、==はfalseとなります。」 面接「なるほど。」 Stri
このページを最初にブックマークしてみませんか?
『qiita.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く