Стандартная библиотека Java: полный обзор для начинающих и профи

Онлайн-тренажер Python для начинающих

Изучайте Python легко и без перегрузки теорией. Решайте практические задачи с автоматической проверкой, получайте подсказки на русском языке и пишите код прямо в браузере — без необходимости что-либо устанавливать.

Начать курс

Стандартная библиотека 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) потоки

Рекомендаций