Введение в Java
Чтобы смотреть видео нужно иметь активную платную подписку и вступить в курс. Войти или зарегистрироваться.

Мутируемые объекты - такие объекты, в которых проходят любые процессы изменения состояния.

Ключевое слово final - используется для того, чтобы запретить изменять объект. Для примитивов final делает постоянным присвоенное значение. Для ссылки на объект - постоянной становится ссылка. Вся информация, которая находится в каждом объекте, устанавливается во время создания объекта и остается в таком состоянии до конца жизни объекта.

Сложные объекты(не приметивы), которые содержат в себе различные поля, будут полностью неизменяемы, если каждое поле объекта пометить как final. Иначе только ссылка на объект будет неизменяемой, чего не скажешь про содержимое объекта.

  • blank finals - поля классов, которые помечены как final но не инициализированы. Перед использованием эти поля нужно в любом случае инициализировать (один только раз).

  • Помечая метод как final - мы говорим что его нельзя будет переопределить.

  • Помечая класс как final - мы косвенно запрещаем переопределять все методы класса. А так же такой класс не поддается наследованию.

// немного информации про много поточность и масштабируемость, хоть про нее будет идти речь позже

Важно написать распределённую много поточную программу. В таком случае программа может быть разбита на кластеры, то есть одну сложную программу можно разложить на нескольких разных машинах, в соответствии с потребностями. Изменяемые объекты - почти всегда плохое решение; там, где можно от них отказаться нужно писать неизменяемые объекты.

// I try to make as many things immutable as possible.

Reading links

Группы для общения: