HTML Diff
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