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