Выход текущей программы - "Странно". Но обе переменные имеют одну и ту же ссылку. Почему второе и третье сравнения не соответствуют действительности?
Integer a;
Integer b;
a = new Integer(2);
b = a;
if(b == a) {
System.out.println("Strange");
}
a++;
if(b == a) {
System.out.println("Stranger");
}
a--;
if(b == a) {
System.out.println("Strangest");
}
Выход: Strange