Я знаю, что это, вероятно, очень глупо, но во многих местах утверждается, что класс Integer в Java является неизменяемым, однако следующий код:
Integer a=3;
Integer b=3;
a+=b;
System.out.println(a);
Выполняется без каких-либо проблем, давая (ожидаемый) результат 6. Таким образом, значение a изменилось. Разве это не значит, что Integer изменчив? Вторичный вопрос и небольшой оффтоп: «Неизменяемые классы не нуждаются в конструкторах копирования». Кто-нибудь хочет объяснить, почему?