0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<p>Теги: java, производительность, советы</p>
1
<p>Теги: java, производительность, советы</p>
2
<h4>Пустая коллекция вместо Null</h4>
2
<h4>Пустая коллекция вместо Null</h4>
3
<p>Если программа, которую вы пишете, может вернуть коллекцию, не содержащую никаких значений, следует удостовериться, что возвращается пустая коллекция, а не Null - это позволит сэкономить вам время на разнообразные проверки, а также избавит от многих ошибок.</p>
3
<p>Если программа, которую вы пишете, может вернуть коллекцию, не содержащую никаких значений, следует удостовериться, что возвращается пустая коллекция, а не Null - это позволит сэкономить вам время на разнообразные проверки, а также избавит от многих ошибок.</p>
4
<h4>Создаем объекты лишь тогда, когда нужно</h4>
4
<h4>Создаем объекты лишь тогда, когда нужно</h4>
5
<p>Пожалуй, создание объектов является одной из наиболее затратных операций в Java. Хорошая практика - создавать их лишь тогда, когда они действительно необходимы.</p>
5
<p>Пожалуй, создание объектов является одной из наиболее затратных операций в Java. Хорошая практика - создавать их лишь тогда, когда они действительно необходимы.</p>
6
<h4>Deadlocks</h4>
6
<h4>Deadlocks</h4>
7
<p>Взаимная блокировка потоков (дэдлок) бывает по множеству причин, а полностью уберечься от них в Java 8 весьма сложно. Зачастую, такое происходит, если один синхронизируемый объект ожидает ресурсов, а они заблокированы другим синхронизированным объектом.</p>
7
<p>Взаимная блокировка потоков (дэдлок) бывает по множеству причин, а полностью уберечься от них в Java 8 весьма сложно. Зачастую, такое происходит, если один синхронизируемый объект ожидает ресурсов, а они заблокированы другим синхронизированным объектом.</p>
8
<p>Рассмотрим пример тупика потока:</p>
8
<p>Рассмотрим пример тупика потока:</p>
9
<p>Результат программы будет следующим:</p>
9
<p>Результат программы будет следующим:</p>
10
<p>Если изменить порядок вызова потоков, то взаимоблокировок можно избежать:</p>
10
<p>Если изменить порядок вызова потоков, то взаимоблокировок можно избежать:</p>
11
<p>Смотрим вывод:</p>
11
<p>Смотрим вывод:</p>
12
<h4>Резервирование памяти</h4>
12
<h4>Резервирование памяти</h4>
13
<p>Ряд Java-приложений обладает повышенной ресурсоемкостью, что может приводить к замедленной работе. Чтобы повысить производительность, можно выделить на Java-машине больше оперативной памяти.</p>
13
<p>Ряд Java-приложений обладает повышенной ресурсоемкостью, что может приводить к замедленной работе. Чтобы повысить производительность, можно выделить на Java-машине больше оперативной памяти.</p>
14
<p>Здесь: • Xms - минимальный пул выделения памяти; • Xmx - максимальный пул; • XX: PermSize - начальный размер, который выделится при запуске JVM; • XX: MaxPermSize - максимальный размер, который выделится при запуске JVM.</p>
14
<p>Здесь: • Xms - минимальный пул выделения памяти; • Xmx - максимальный пул; • XX: PermSize - начальный размер, который выделится при запуске JVM; • XX: MaxPermSize - максимальный размер, который выделится при запуске JVM.</p>
15
<p><em>По материалам статьи "<a>Top 25 Java Tricks, Tips, and Best Practices</a>".</em></p>
15
<p><em>По материалам статьи "<a>Top 25 Java Tricks, Tips, and Best Practices</a>".</em></p>
16
16