public class T1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer i1 = 1000;
Integer i2 = 1000;
if(i1 != i2) System.out.println("different objects");
if(i1.equals(i2)) System.out.println("meaningfully equal");
}
}
O/P для этого является:Autoboxing распаковка Оператор (=!) И разность (==)
различных объектов
по значению равна
Где, как
public class T2 {
public static void main(String[] args) {
Integer i3 = 10;
Integer i4 = 10;
if(i3!=i4)System.out.println("Crap dude!!");
if(i3 == i4) System.out.println("same object");
if(i3.equals(i4)) System.out.println("meaningfully equal");
}
}
Производит следующие O/P:
же объект
по значению равно
Я не понимаю, почему в классе T2
if(i3!=i4)
не получил вызвал я ссылаюсь SCJP 1.6, но не в состоянии понять.
Пожалуйста, помогите мне.
Обратите внимание, что вы использовали «1000» в первом примере и «10» во втором примере. – kennytm
Подробнее о диапазоне кеша для целых чисел в Java. Прочитайте Javadoc, исходный код, ... класса оболочки Integer. –
Хорошо .. спасибо Кенни и Рохит. –