Стандартная библиотека Java (Java Standard Edition): полный обзор
Стандартная библиотека Java (Java Standard Edition — JavaSE) — это фундаментальный набор пакетов, классов и интерфейсов, который поставляется вместе с каждой JDK (Java Development Kit). В отличие от сторонних фреймворков, стандартная библиотека не требует установки дополнительных зависимостей — она доступна "из коробки". Именно она делает Java таким мощным и переносимым языком, предоставляя разработчику готовые решения для большинства повседневных задач: от работы со строками до многопоточности и сетевого взаимодействия.
В этом обзоре мы разберём ключевые пакеты стандартной библиотеки, покажем практические примеры кода и объясним, как эти инструменты применяются в реальной разработке.
1. Пакет java.lang — основа основ
Пакет java.lang импортируется автоматически в любой Java-программе. Он содержит классы, без которых невозможно представить ни одно приложение.
- Object — корневой класс для всех объектов. Методы
equals(),hashCode(),toString(). - String, StringBuilder, StringBuffer — работа с неизменяемыми и изменяемыми строками.
- Math — математические функции (
Math.sqrt(),Math.random()). - System — консольный ввод/вывод, управление системными свойствами.
- Thread и Runnable — базовые средства многопоточности.
public class LangExample {
public static void main(String[] args) {
// Работа со строками
String text = "Привет, Java!";
System.out.println(text.length()); // 13
// Математика
double sqrt = Math.sqrt(144);
System.out.println(sqrt); // 12.0
// Класс Object
Object obj = new Object();
System.out.println(obj.hashCode());
}
}
2. Пакет java.util — коллекции и утилиты
Это самый обширный пакет. Он включает в себя Collections Framework, работу с датами, случайными числами и многое другое.
Коллекции (Collections Framework)
- List (ArrayList, LinkedList) — упорядоченные списки с дубликатами.
- Set (HashSet, TreeSet) — множества без повторов.
- Map (HashMap, TreeMap) — словари "ключ-значение".
- Queue (PriorityQueue) — очереди.
import java.util.*;
public class UtilExample {
public static void main(String[] args) {
// ArrayList
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("Java");
System.out.println(list); // [Java, Python, Java]
// HashSet (уникальные элементы)
Set<String> set = new HashSet<>(list);
System.out.println(set); // [Java, Python]
// HashMap
Map<String, Integer> map = new HashMap<>();
map.put("Яблоко", 10);
map.put("Груша", 5);
System.out.println(map.get("Яблоко")); // 10
}
}
Утилиты
- Collections — статические методы для сортировки, поиска, синхронизации.
- Arrays — работа с массивами.
- Random — генерация псевдослучайных чисел.
3. Пакет java.io — классический ввод/вывод
Пакет для работы с потоками данных (Streams). Используется для чтения и записи файлов, работы с консолью и сетевыми потоками.
- InputStream/OutputStream — байтовые потоки.
- Reader/Writer — символьные потоки.
- File — представление файла или директории.
- BufferedReader/BufferedWriter — буферизированное чтение/запись.
import java.io.*;
public class IOExample {
public static void main(String[] args) throws IOException {
// Запись в файл
try (BufferedWriter writer = new BufferedWriter(new FileWriter("example.txt"))) {
writer.write("Стандартная библиотека Java");
writer.newLine();
writer.write("Это пример записи.");
}
// Чтение из файла
try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
}
}