Стандартная библиотека Java: полный обзор
Стандартная библиотека Java (Java Standard Edition API) — это мощный и обширный набор классов и интерфейсов, предоставляющий разработчикам готовые решения для большинства типовых задач. Она является неотъемлемой частью платформы Java и охватывает всё: от базовых типов данных и работы с коллекциями до многопоточности, ввода-вывода и сетевого взаимодействия. В этом обзоре мы рассмотрим ключевые пакеты и их возможности.
Пакет java.lang — основа языка
Пакет java.lang импортируется автоматически. Он содержит фундаментальные классы, без которых невозможно написать ни одну программу на Java.
- Object — корневой класс иерархии. Все классы наследуют его методы (
equals(),hashCode(),toString()). - String, StringBuilder, StringBuffer — для работы с неизменяемыми и изменяемыми строками.
- Типы-обёртки —
Integer,Double,Booleanи другие — позволяют использовать примитивы в коллекциях. - System — утилитарный класс для работы с консолью (
System.out), свойствами системы и массивами (System.arraycopy()). - Math — предоставляет математические константы и функции (
Math.sin(),Math.sqrt()).
// Пример использования java.lang
public class LangExample {
public static void main(String[] args) {
String text = "Hello, Java!";
int length = text.length(); // 12
double root = Math.sqrt(25); // 5.0
System.out.println(text.toUpperCase()); // HELLO, JAVA!
}
}
Пакет java.util — коллекции и утилиты
Это один из самых востребованных пакетов. Он включает Collections Framework — единую архитектуру для хранения и обработки данных.
Коллекции
- List — упорядоченный список (допускает дубликаты). Реализации:
ArrayList,LinkedList. - Set — множество уникальных элементов. Реализации:
HashSet,TreeSet. - Map — словарь (ключ-значение). Реализации:
HashMap,TreeMap. - Queue/Deque — очереди для обработки данных (например,
PriorityQueue).
import java.util.*;
public class CollectionsExample {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("Java"); // Дубликат допускается
Set<Integer> set = new HashSet<>();
set.add(10);
set.add(20);
set.add(10); // Дубликат будет проигнорирован
Map<String, Integer> map = new HashMap<>();
map.put("Alice", 30);
map.put("Bob", 25);
System.out.println("List: " + list);
System.out.println("Set: " + set);
System.out.println("Map: " + map);
}
}
Утилиты
- Collections — статические методы для сортировки, поиска и синхронизации коллекций.
- Arrays — удобная работа с массивами (
Arrays.sort(),Arrays.asList()). - Date, Calendar — для работы с датами и временем (устарели в пользу
java.time). - Random — генерация псевдослучайных чисел.
Пакет java.io — ввод-вывод
Этот пакет предоставляет классы для работы с потоками данных: файлами, консолью, сетевыми соединениями. Базируется на концепции InputStream/OutputStream для байтов и Reader/Writer для символов.
- File — представляет путь к файлу или директории.
- FileInputStream, FileOutputStream — чтение/запись байтов.
- BufferedReader, BufferedWriter — буферизированное чтение/запись текста.
- ObjectInputStream, ObjectOutputStream — сериализация объектов.
import java.io.*;
public class IOExample {
public static void main(String[] args) throws IOException {
// Запись в файл
try