Integer a = Integer.valueOf(127);
Integer b = Integer.valueOf(127);
Integer c = Integer.valueOf(128);
Integer d = Integer.valueOf(128);
System.out.println(a == b);
System.out.println(c == d);
結果:
true
false
緣由:
Integer類已經對數字0-127作了一個緩存,建立0-127這些經常使用整數類型是直接從緩存中調引用,因此是true,而超過127則是建立新的對象,因此內存地址的引用不一致,故是false。