Java 比較演算子

比較演算子は、2つの式を評価して真か偽の値を出すもので、
いくつかの種類があります。

関係演算子

関係演算子には、< > <= >= の4つと instanceof があります。

1 < 3      真となる。
3 < 1      偽となる。
5 > 1      真となる。
1 > 5      偽となる。
3 <= 3     真となる。
5 <= 3     偽となる。
8 >= 8     真となる。
5 >= 8     偽となる。

instanceof演算子は、参照型の変数のデータ型を比較します。

if (data instanceof int[])      dataがint型配列を指すなら真
if (data instanceof myclass)    dataがmyclass型を指すなら真
if (data instanceof String)     dataがString型を指すなら真

等価演算子

等価演算子には、== != の2つがあり、
2つの値が等しいかどうかを判定し、真か偽の値を出します。

1 == 1      真となる。
3 == 1      偽となる。
5 != 1      真となる。
5 != 5      偽となる。
スポンサーリンク

等価演算子による参照型変数の比較

参照型変数(クラス、配列)は、
そのデータ型を指すアドレス値が格納されています。

そのアドレス値同士を比較しても、
そのアドレスが指すオブジェクトの中身のデータ
の比較をしている事にはなりません。

例としてString型の比較について説明します。

String strData1="java", strData2="java2";

      if (strData1 == strData2)

このプログラムはString型のstrData1とstrData2を比較していますが、
文字列”java”と”java2″を比較しているワケではありません。

これは、strData1のアドレス値とstrData2のアドレス値を比較しています。

中身の比較をしたい場合は、
String型のequals関数を使えば実現できます。

String strData1="java", strData2="java";

      if ( strData1.equals(strData2) )