Зачем делать защитные копии в геттерах внутри неизменных классов?

Этот вопрос касается хороших методов программирования и избежания потенциальных пробелов.
Я читаю «Эффективную Java» Джошуа Блоха и вот что мне интересно:
Почему я должен подумать о том, чтобы сделать защитные копии в методах получения в моем неизменном классе без мутаторов?
И второе: почему я должен сделать свои поляfinal в дополнение кprivate ? Это только о производительности (не безопасности)?

Ответы на вопрос(7)

Ваш ответ на вопрос