Java 『equals』と『 == 』 の違いについて


IF文で条件分岐を行うときに
『equals』と『 == 』を知らずに、『 == 』を使用すると
かなりの確率で不具合(バグ)が発生します。

例えば、下記の処理を実行すると
コンソールには、何が出力されるかわかりますか?

プログラム

public class Test {

  public static void main(String[] args) {

    String test1 = new String("100");
    String test2 = new String("100");

    if (test1 == test2) {
      System.out.println("同じです");
    } else {
      System.out.println("違います");
    }

    if (test1.equals(test2)) {
      System.out.println("同じです");
    } else {
      System.out.println("違います");
    }
  }
}

コンソール結果

違います
同じです