0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p><em>Мутируемые объекты</em>- такие объекты, в которых проходят любые процессы изменения состояния.</p>
1
<p><em>Мутируемые объекты</em>- такие объекты, в которых проходят любые процессы изменения состояния.</p>
2
<p>Ключевое слово final - используется для того, чтобы запретить изменять объект. Для примитивов final делает постоянным присвоенное значение. Для ссылки на объект -<strong>постоянной становится ссылка</strong>. Вся информация, которая находится в каждом объекте, устанавливается во время создания объекта и остается в таком состоянии до конца жизни объекта.</p>
2
<p>Ключевое слово final - используется для того, чтобы запретить изменять объект. Для примитивов final делает постоянным присвоенное значение. Для ссылки на объект -<strong>постоянной становится ссылка</strong>. Вся информация, которая находится в каждом объекте, устанавливается во время создания объекта и остается в таком состоянии до конца жизни объекта.</p>
3
<p>Сложные объекты(не примитивы), которые содержат в себе различные поля, будут полностью неизменяемые, если каждое поле объекта пометить как final. Иначе только ссылка на объект будет неизменяемой, чего не скажешь про содержимое объекта.</p>
3
<p>Сложные объекты(не примитивы), которые содержат в себе различные поля, будут полностью неизменяемые, если каждое поле объекта пометить как final. Иначе только ссылка на объект будет неизменяемой, чего не скажешь про содержимое объекта.</p>
4
<ul><li><p><strong>blank finals</strong>- поля классов, которые помечены как final, но не инициализированы. Перед использованием эти поля нужно в любом случае инициализировать (один только раз).</p>
4
<ul><li><p><strong>blank finals</strong>- поля классов, которые помечены как final, но не инициализированы. Перед использованием эти поля нужно в любом случае инициализировать (один только раз).</p>
5
</li>
5
</li>
6
<li><p><strong>Помечая метод как final</strong>- мы говорим что его нельзя будет переопределить.</p>
6
<li><p><strong>Помечая метод как final</strong>- мы говорим что его нельзя будет переопределить.</p>
7
</li>
7
</li>
8
<li><p><strong>Помечая класс как final</strong>- мы косвенно запрещаем переопределять все методы класса, поскольку такой класс не поддается наследованию.</p>
8
<li><p><strong>Помечая класс как final</strong>- мы косвенно запрещаем переопределять все методы класса, поскольку такой класс не поддается наследованию.</p>
9
</li>
9
</li>
10
</ul><p>// немного информации про многопоточность и масштабируемость, хоть про нее будет идти речь позже</p>
10
</ul><p>// немного информации про многопоточность и масштабируемость, хоть про нее будет идти речь позже</p>
11
<p>Важно написать распределенную многопоточную программу. В таком случае программа может быть разбита на кластеры, то есть одну сложную программу можно разложить на нескольких разных машинах, в соответствии с потребностями. Изменяемые объекты - почти всегда плохое решение; там, где можно от них отказаться нужно писать неизменяемые объекты.</p>
11
<p>Важно написать распределенную многопоточную программу. В таком случае программа может быть разбита на кластеры, то есть одну сложную программу можно разложить на нескольких разных машинах, в соответствии с потребностями. Изменяемые объекты - почти всегда плохое решение; там, где можно от них отказаться нужно писать неизменяемые объекты.</p>
12
<p>// I try to make as many things immutable as possible.</p>
12
<p>// I try to make as many things immutable as possible.</p>
13
<h2>Ссылки для прочтения</h2>
13
<h2>Ссылки для прочтения</h2>
14
<ul><li><a>Неизменяемый объект wiki</a>;</li>
14
<ul><li><a>Неизменяемый объект wiki</a>;</li>
15
<li><a>Теория и практика Java: Изменять или не изменять?</a>;</li>
15
<li><a>Теория и практика Java: Изменять или не изменять?</a>;</li>
16
</ul>
16
</ul>