У меня есть следующий код:
public class Test {
public static void main(String[] args) {
Integer alpha = new Integer(1);
Integer foo = new Integer(1);
if(alpha == foo) {
System.out.println("1. true");
}
if(alpha.equals(foo)) {
System.out.println("2. true");
}
}
}
Выход выглядит следующим образом:
2. true
Однако изменение типа Integer object
на int
приведет к другому результату, например:
public class Test {
public static void main(String[] args) {
Integer alpha = new Integer(1);
int foo = 1;
if(alpha == foo) {
System.out.println("1. true");
}
if(alpha.equals(foo)) {
System.out.println("2. true");
}
}
}
Новый вывод:
1. true
2. true
Как это может быть так? Почему первый пример кода не выводит 1. true
?