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