1
0

More than 1 year has passed since last update.

文字列はなぜ.equalsで比較するのか。参照型の変数について分かりやすく説明してみる。

Last updated at Posted at 2023-08-15

さっそくいってみよう

結論だけ知りたい方は変数AとBを比較してみましょうにとんでください
まず初めに、参照型の代表であるStringの変数を宣言してみましょう。

String A = "あいうえお";

この時何が起きているかというと、
Aロッカーに "あいうえお" という文字列が格納された。と考えてください。
(文字列だとわかりにくい場合は、サッカーボールでもカバンでもなんでも構いません。
わかりやすいものでイメージしてみてください。)
そしてそのAロッカーを開けるための鍵が、変数Aになります。
image.png
この図を見てわかる通り、変数Aに直接 "あいうえお" が入っているわけではありません。
変数Aにはロッカー番号が入っているため、参照型と呼ばれるわけですね。

それではここで、もう一つ変数を宣言してみましょう。

String B = "あいうえお";

Bロッカーとその鍵が増えました。中身は "あいうえお" です。
image.png

変数AとBを比較してみましょう

String A = "あいうえお";
String B = "あいうえお";

System.out.println(A == B); /* False */
System.out.println(A.equals(B)); /* True */

「==」の場合

「==」ではロッカー番号を比較するため、結果はfalseになります。
image.png

「.equals」の場合

「.equals」ではロッカーの中身を比較するため、結果はTrueになります。
image.png

以上、今日はこの辺でおしまいです。
代入についても、動きが理解できると面白いので次回書いてみようと思います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0