参照型を==で比較してはいけない話
有名な話だし、ズバリこれなんですけど。
http://javatechnology.net/java/integer-equal/
メモしとく
Integer a = 1; Integer b = 127; Integer c = 128; Integer x = 1; Integer y = 127; Integer z = 128; if(x == a) { System.out.println(x); } if(y == b) { System.out.println(y); } if(z == c) { System.out.println(z); }
これの実行結果は
1 127
なんだよね。128以降はキャッシュを使わないでnew Integer()するという。。。