Ввод-вывод в Java: IO и NIO на практике

Оглавление Введение Java предоставляет мощный функционал для операций ввода-вывода (I/O – Input/Output). Исторически основной механизм I/O был реализован в пакете java.io (классическом Java IO), основанном на потоках (streams). Однако с выходом Java 1.4 (J2SE 1.4, 2002 год) появился Java NIO (New I/O) – новый подход к вводу-выводу, призванный повысить производительность и обеспечить масштабируемость систем ввода-вывода. … —Читать далее—

Loading

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