HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: nullpointerexception, время, трассировка стека, дата</p>
1 <p>Теги: nullpointerexception, время, трассировка стека, дата</p>
2 <h3>Трассировка стека (Stack Trace)</h3>
2 <h3>Трассировка стека (Stack Trace)</h3>
3 <p>Выявление ошибок - одна из наиболее трудоемких частей процесса разработки на Джава. Этот процесс несколько упрощается с помощью трассировки стека. Stack Trace позволяет точно отслеживать, где именно в вашем проекте возникла ошибка либо исключение (exception).</p>
3 <p>Выявление ошибок - одна из наиболее трудоемких частей процесса разработки на Джава. Этот процесс несколько упрощается с помощью трассировки стека. Stack Trace позволяет точно отслеживать, где именно в вашем проекте возникла ошибка либо исключение (exception).</p>
4 <p>Пример кода:</p>
4 <p>Пример кода:</p>
5 <h3>NullPointerException</h3>
5 <h3>NullPointerException</h3>
6 <p>Исключения, которые возникают из-за null-значений (NullPointerException), нередко появляются, когда мы пытаемся вызвать метод у несуществующего объекта.</p>
6 <p>Исключения, которые возникают из-за null-значений (NullPointerException), нередко появляются, когда мы пытаемся вызвать метод у несуществующего объекта.</p>
7 <p>Возьмем для примера следующий код:</p>
7 <p>Возьмем для примера следующий код:</p>
8 <h3>Дата и время</h3>
8 <h3>Дата и время</h3>
9 <h4>System.currentTimeMillis либо System.nanoTime?</h4>
9 <h4>System.currentTimeMillis либо System.nanoTime?</h4>
10 <p>В Java существуют 2 стандартных способа проведения операций со временем, причем не всегда понятно, какой лучше выбрать.</p>
10 <p>В Java существуют 2 стандартных способа проведения операций со временем, причем не всегда понятно, какой лучше выбрать.</p>
11 <p>Начнем с метода System.currentTimeMillis(). Он возвращает в формате Long текущее количество миллисекунд с начала эры Unix. Точность находится в пределах от 1 до 15 тысячных долей секунды, что зависит от системы.</p>
11 <p>Начнем с метода System.currentTimeMillis(). Он возвращает в формате Long текущее количество миллисекунд с начала эры Unix. Точность находится в пределах от 1 до 15 тысячных долей секунды, что зависит от системы.</p>
12 <p>Что касается метода System.nanoTime(), то он имеет точность до одной наносекунды, возвращая текущее значение наиболее точного и доступного системе таймера.</p>
12 <p>Что касается метода System.nanoTime(), то он имеет точность до одной наносекунды, возвращая текущее значение наиболее точного и доступного системе таймера.</p>
13 <p>Какой тут можно сделать вывод? Метод System.currentTimeMillis() предпочтительнее использовать при отображении и синхронизации абсолютного времени, а метод System.nanoTime() больше подходит для измерения относительных интервалов времени.</p>
13 <p>Какой тут можно сделать вывод? Метод System.currentTimeMillis() предпочтительнее использовать при отображении и синхронизации абсолютного времени, а метод System.nanoTime() больше подходит для измерения относительных интервалов времени.</p>
14 <h4>Валидация даты из строки</h4>
14 <h4>Валидация даты из строки</h4>
15 <p>Когда надо достать объект Date из обычной строки, можно воспользоваться небольшим утилитным классом, приведенным ниже. Этот класс позаботится обо всех сложностях как валидации, так и преобразования строки в объект Date.</p>
15 <p>Когда надо достать объект Date из обычной строки, можно воспользоваться небольшим утилитным классом, приведенным ниже. Этот класс позаботится обо всех сложностях как валидации, так и преобразования строки в объект Date.</p>
16 <p>А вот пример использования:</p>
16 <p>А вот пример использования:</p>
17 <p>И вывод:</p>
17 <p>И вывод:</p>
18 <h2>Напутствие: несколько слов о чистоте кода</h2>
18 <h2>Напутствие: несколько слов о чистоте кода</h2>
19 <p>В крупных проектах первоочередное значение имеет не создание нового кода, а<strong>поддержка кода, который уже существует</strong>. А значит это следующее: очень важно правильно организовать код с самого начала. Поэтому, разрабатывая новое приложение, всегда помните о 3-х главных принципах чистого и поддерживаемого кода: 1) используйте паттерны проектирования; 2) не забывайте про принципы SOLID; 3) помните про правило 10-50-500 (в одном пакете не должно быть более 10 классов; каждый метод должен быть короче 50 строк, а каждый класс - короче 500 строк кода).</p>
19 <p>В крупных проектах первоочередное значение имеет не создание нового кода, а<strong>поддержка кода, который уже существует</strong>. А значит это следующее: очень важно правильно организовать код с самого начала. Поэтому, разрабатывая новое приложение, всегда помните о 3-х главных принципах чистого и поддерживаемого кода: 1) используйте паттерны проектирования; 2) не забывайте про принципы SOLID; 3) помните про правило 10-50-500 (в одном пакете не должно быть более 10 классов; каждый метод должен быть короче 50 строк, а каждый класс - короче 500 строк кода).</p>
20 <p>На этом все, удачной вам разработки!</p>
20 <p>На этом все, удачной вам разработки!</p>
21 <p><em>По материалам статьи "<a>Top 25 Java Tricks, Tips, and Best Practices</a>".</em></p>
21 <p><em>По материалам статьи "<a>Top 25 Java Tricks, Tips, and Best Practices</a>".</em></p>
22  
22