Поэтому мне сегодня задали этот вопрос.
Integer a = 3;
Integer b = 2;
Integer c = 5;
Integer d = a + b;
System.out.println(c == d);
Что выйдет из этой программы? Он возвращает true. Я ответил, что он всегда будет печатать ложно из-за того, как я понял auto (и auto un) бокс. У меня создалось впечатление, что назначение Integer a = 3 создаст новый Integer (3), так что == будет оценивать ссылку, а не примитивное значение.
Кто-нибудь может это объяснить?