このコード(Boxing操作)の実行結果を見てください.間違っている以上.



public class BoxingTest {
	public static void main(String[] args){
		Integer a = 100;
		Integer b = 100;
		System.out.println(a == b);		//true
		Integer c = new Integer(200);
		Integer d = new Integer(200);
		System.out.println(c == d);		//false
		Integer e = 300;
		Integer f = 300;
		System.out.println(e == f);		//false
		
		Integer i = 127;
		Integer j = 127;
		System.out.println(i == j);		//?
		
		Integer m = 128;
		Integer	n = 128;
		System.out.println(m == n);		//?
	}
}

一見すると、なぜ最初の結果がtrueなのか、後の2つの結果がfalseなのか、理解できません.