Java5 からボクシングとアンボクシングが自動で処理されるようになり便利になりました。しかしオートボクシングの分かりにくい挙動もあります。 Integer と int の比較を以下のようにすると、 Integer i1 = 100; int i2 = 100; if ( i1 == i2 ) { System.out.println("i1 == i2"); } else { System.out.println("i1 != i2"); } 以下の結果となり、等値での比較が行われます。 i1 == i2 アンボクシングされて i1.intValue() のようなコードと解釈されるため Integer i1 = Integer.valueOf(100); int i2 = 100; if (i1.intValue() == i2) { System.out.println("i1 ==