演算子

Javaではオブジェクトタイプ、すなわちクラスのオブジェクトに対しては、いろんな操作をメソッドというものを使って行います。しかしプリミティブタイプにはクラスがなく、メソッドもないので操作はもっぱら演算子を使って行われます。
ありきたりですが、

int a,b,c;
a = 1;
b = 2;
c = a + b;

このように演算子を使って操作を行います。
演算子で少々間違えてしまう例を挙げてみます。

  • Stringオブジェクトに対して関係演算子(==)を使うパターン

以下のif文の判定文で間違いパターンと正解パターンを記述します。文字列連結に+が使えるから、==も使えるんだろうと思ってしまうのです。Cとかいけるんすけどね・・・。

String sa = "unko";
String sb = "aho";
if( sa == sb){           //  NGパターン
}
if( sa.equals(sb) ){     //   OKパターン
}                         

Stringクラスのequals()メソッド使わないといけません。このequals()メソッドの返し値も、==の結果と同じくブーリアンタイプになります。
オブジェクトタイプの比較に==演算子を使わない事!!

オブジェクトタイプの変数は、オブジェクトの参照といいます。参照なのでCPU上のメモリ上にあるオブジェクトのアドレス値になります。
同じクラスの二つのオブジェクトに対して「==」と書く比較は、比較する二つのオブジェクトの参照の「数値としての等しさ」になるわけです。二つの違うオブジェクトを同一アドレスには格納できませんので、違う値となり本当に比較したかった結果を得られないわけです。
イコールとなる場合は、二つのオブジェクトは名前が違うが、同じオブジェクトである場合となります。