
Класс java.time.Instant описывает точное время и работает с метками времени в формате UTC. Для большинства технических задач, например, хранения, логгирования и аудита, Instant подходит лучше всего.

Класс java.time.Instant описывает точное время и работает с метками времени в формате UTC. Для большинства технических задач, например, хранения, логгирования и аудита, Instant подходит лучше всего.

Прежде чем переходить к более подробному описанию классов, описывающих метки времени, неплохо было бы упомянуть источники времени, хотя на практике они используются не так часто. Источники времени представлены интерфейсом InstantSource и его основной реализацией — Clock.

Для работы с датой и временем в стандартной библиотеке Java существует два набора API: старый, включающий в себя такие классы, как Date и Calendar, и новый, опирающийся на стандарт ISO 8601 и включающий в себя классы из пакета java.time. В настоящее время разработчиками платформы Java рекомендуется использование новых API для работы с датой и временем.

Одним из наиболее значимых нововведений в Java 21 стала стабильная поддержка виртуальных потоков. Предлагаю в этой статье разобраться с тем, почему нам нужны виртуальные потоки, как их использовать, и какие подводные камни могут нас ожидать при их применении.
Читать далее Java: Виртуальные потоки
В предыдущей статье вкратце было рассказано про JDK, JRE И JVM, а в этой статье я предлагаю рассмотреть три способа установки JDK в операционной системе Windows: при помощи инсталлятора, утилитой winget и вручную.
Читать далее Установка JDK в WindowsМир Java-разработки полнится аббревиатурами, и в этой статье я предлагаю разобраться, наверно, с самыми основными из них: JVM, JRE и JDK.
Читать далее Вкратце о JVM, JRE и JDKПятым и последним принципом в списке принципов SOLID является принцип инверсии зависимости (Dependency Inversion Principle; DIP), который Роберт Мартин в книге «Чистая архитектура» формулирует следующим образом: «Код, реализующий высокоуровневую политику, не должен зависеть от кода, реализующего низкоуровневые детали. Напротив, детали должны зависеть от политики«.
Читать далее Принцип инверсии зависимости — SOLID в деталяхШаблонный метод — это популярный поведенческий шаблон проектирования. При его помощи можно задать некоторое поведение в методе абстрактного класса, но при этом оставить детали реализации на классы-наследники. Проще говоря, в контексте языка программирования Java шаблонный метод — это метод абстрактного класса или метод по умолчанию интерфейса, задающий общее поведение, но опирающийся на другие абстрактные методы. Шаблонный метод наряду с шаблоном проектирования «Стратегия» часто применяется при реализации инверсии управления.
Читать далее Шаблонный метод — шаблоны проектирования в деталяхПрежде чем браться за материалы, посвящённые Spring Framework, мне хотелось бы повторить тему инверсии управления, так как этот принцип и его реализации в виде внедрения и поиска зависимостей являются важной составляющей ядра Spring Framework.
Под инверсией управления понимается подход к написанию кода, при котором элементы кода получают поток управления неявно от некоторого фреймворка. Иными словами, если сравнивать с традиционным процедурным программированием, не код обращается к фреймворку или библиотекам для выполнения какого-либо действия, а наоборот, фреймворк обращается к нашему коду.
Читать далее Внедрение и поиск зависимостейВо второй статье цикла, посвящённого шаблонам проектирования, я хотел бы поговорить про шаблон проектирования «декоратор», который я частенько путаю с шаблоном «адаптер». О последнем, кстати, я подробно рассказывал в предыдущей статье. Впрочем, оба шаблона проектирования делят одно альтернативное название — «обёртка» (Wrapper).
Читать далее Шаблон проектирования декоратор