Java 8 vs Java 21: Современные возможности на практике

Оглавление Введение Многие Java-разработчики продолжают писать код в стиле Java 8, даже когда Java 21 предлагает богатый набор новых возможностей для упрощения разработки. По состоянию на конец 2023 года около 40% проектов все еще работали на Java 8, хотя к началу 2025 эта доля снизилась до ~23%. Это значит, что значительная часть кода не пользуется улучшениями последних релизов … —Читать далее—

Loading

Используете ли вы Java 21 или просто обновили JDK?

Введение Обновление JDK – это ещё не использование Java 21. Многие команды переходят на новую версию платформы, чтобы «быть на LTS», но при этом продолжают писать код так, как будто всё ещё работают на Java 8 или 11. Между тем Java 21 приносит фундаментальные нововведения: виртуальные потоки, структурированную конкурентность, безопасные неизменяемые коллекции, мощные паттерны и … —Читать далее—

Loading

Избавляемся от NullPointerException в Java: чистый и масштабируемый подход

Проблема NullPointerException знакома каждому Java-разработчику. Первое, что приходит на ум – добавить != null. Это кажется быстрым решением, но в долгосрочной перспективе приводит к: Так можно ли решить эту задачу элегантнее? Для того, чтобы уйти от использования стандартной проверки на null мы можем выполнить несколько довольно простых шагов. Шаг 1. Часто встречаемые типы данных Перед … —Читать далее—

Loading

Механизмы CAS и FAA глазами Java разработчика

В данной статье мы рассмотрим механизмы обеспечения многопоточных вычислений CAS и FAA с точки зрения Java разработчика. Содержание статьи: Введение 1.1. Определение CAS и FAA 1.2. Обоснование важности атомарных операций1.3. Краткий обзор применения CAS и FAA в многопоточных приложениях CAS (Compare-and-Swap) 2.1. Описание механизма CAS 2.2. Примеры использования CAS в Java 2.2.1. AtomicInteger, AtomicLong и … —Читать далее—

Loading

ExecutorService в Java и примеры его применения.

ExecutorService – это интерфейс Java, который предоставляет удобный способ управления потоками исполнения. Он позволяет создавать пул потоков исполнения и выполнять задачи в этих потоках. Существует несколько ключевых реализаций ExecutorService: ThreadPoolExecutor ScheduledThreadPoolExecutor CachedThreadPoolExecutor ForkJoinPool Рассмотрим каждый из них детально с примером их использования. ThreadPoolExecutor ThreadPoolExecutor – это реализация интерфейса ExecutorService в Java, который предоставляет пул потоков … —Читать далее—

Loading