Стандартная библиотека Java: полный обзор
Стандартная библиотека Java (Java Standard Library) — это фундаментальный набор пакетов, классов и интерфейсов, который поставляется с каждой установкой JDK (Java Development Kit). Она обеспечивает разработчика всем необходимым для создания приложений: от работы с базовыми типами данных и коллекциями до сетевого взаимодействия и многопоточности. Понимание этой библиотеки — ключ к эффективной разработке на Java.
Основные пакеты стандартной библиотеки
Библиотека организована в пакеты. Рассмотрим самые важные из них:
java.lang— автоматически импортируемый пакет, содержащий классы-обёртки (Integer,Double), строки (String,StringBuilder), системные функции (System,Math) и исключения.java.util— коллекции, работа с датами, случайные числа, утилиты (Arrays,Collections).java.io— потоки ввода-вывода, работа с файлами и сериализация.java.nio— неблокирующий ввод-вывод (New I/O), буферы и каналы.java.net— сетевое программирование (сокеты, URL, HTTP).java.util.concurrent— многопоточность: исполнители, блокирующие очереди, атомарные переменные.java.time(Java 8+) — современный API для работы с датой и временем (LocalDate,ZonedDateTime).
Пакет java.lang: основа всего
Пакет java.lang не требует явного импорта. Он включает класс Object — корень иерархии всех классов. Рассмотрим ключевые элементы:
// Класс String — неизменяемые строки
String greeting = "Привет, Java!";
String upper = greeting.toUpperCase(); // "ПРИВЕТ, JAVA!"
// StringBuilder — изменяемые строки (эффективнее, чем конкатенация в цикле)
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");
sb.insert(5, ",");
System.out.println(sb.toString()); // "Hello, World"
// Класс Math — математические операции
double pi = Math.PI;
double sqrt = Math.sqrt(144); // 12.0
int max = Math.max(10, 20); // 20
Особое внимание стоит уделить классам-обёрткам (Integer, Boolean и др.). Они позволяют использовать примитивы в коллекциях и предоставляют методы для преобразования:
int primitive = 42;
Integer wrapped = Integer.valueOf(primitive); // Автоупаковка
int back = wrapped.intValue(); // Распаковка
// Парсинг строки в число
int parsed = Integer.parseInt("12345");
System.out.println(parsed); // 12345
Пакет java.util: коллекции и утилиты
Это самый обширный пакет. Его ядро — Framework коллекций (Collections Framework):
- List — упорядоченные списки:
ArrayList(быстрый доступ по индексу),LinkedList(быстрая вставка/удаление). - Set — множества без дубликатов:
HashSet,TreeSet(сортировка). - Map — словари "ключ-значение":
HashMap,TreeMap.
import java.util.*;
// Пример работы с HashMap
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
ages.put("Charlie", 35);
for (Map.Entry<String, Integer> entry : ages.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
// Сортировка списка
List<Integer> numbers = new ArrayList<>(Arrays.asList(5, 3, 8, 1));
Collections.sort(numbers);
System.out.println(numbers); // [1, 3, 5, 8]
Также в пакете находятся классы для работы со случайными числами (Random), датами (Date, Calendar) и утилиты (Arrays, Objects).
Пакет java.io: работа с файлами и потоками
Классический ввод-вывод основан на потоках (streams). Различают байтовые (InputStream/OutputStream) и символьные (Reader/Writer) потоки
Также в библиотеке
Валидация данных в C# (.NET): библиотеки и подходы
Работа с S3 и облачными хранилищами в Node.js: библиотека @aws-sdk/client-s3
gRPC для Swift (iOS/macOS): библиотеки, настройка и примеры
Стандартная библиотека Java: полный обзор и примеры кода
Очереди задач в Rust: Обзор библиотек для асинхронной обработки