Стандартные библиотеки классов Java
Java предоставляет богатый набор библиотек классов. Ниже приведены некоторые из наиболее часто используемых классов.
1. Основные библиотеки классов Java
Стандартная библиотека Java предоставляет богатый набор встроенных библиотек. Ниже приведены некоторые часто используемые основные библиотеки:
| Категория | Название библиотеки | Основная функциональность |
|---|---|---|
| Фреймворк коллекций | java.util.ArrayList |
Реализация динамического массива |
java.util.LinkedList |
Реализация двусвязного списка | |
java.util.HashMap |
Map на основе хеш-таблицы | |
java.util.Vector |
Реализует динамический массив | |
java.util.HashSet |
Set на основе хеш-таблицы | |
java.util.Scanner |
Получение пользовательского ввода | |
java.util.regex.Pattern |
正则表达式 | |
java.util.regex.Macher |
正则表达式 | |
| IO/NIO | java.io.File |
Операции с файлами и каталогами |
java.nio.file.Files |
Вспомогательный класс для файловых операций | |
java.io.InputStream |
Базовый класс байтового потока | |
java.io.OutputStream |
Базовый класс байтового потока | |
| Многопоточность | java.lang.Thread |
Класс операций с потоками |
java.util.concurrent.ExecutorService |
Управление пулом потоков | |
| Дата и время | java.time.LocalDate |
Обработка дат |
java.time.LocalDateTime |
Обработка даты и времени | |
java.time.ZonedDateTime |
Дата и время с часовым поясом | |
java.util.Date |
Текущая дата | |
java.text.SimpleDateFormat |
Форматирование даты и времени | |
java.util.Calendar |
Работа с датой и временем | |
java.util.GregorianCalendar |
Реализует григорианский календарь | |
java.time.Instant |
Представляет момент времени на временной шкале | |
java.time.ChronoUnit |
Стандартная единица измерения времени | |
java.time.Period |
Представляет временной интервал между двумя датами | |
java.time.Duration |
Представляет период времени (часы, минуты, секунды, наносекунды) | |
| Сетевое программирование | java.net.URL |
Обработка URL |
java.net.Socket |
Программирование сокетов |
2. Распространённые сторонние библиотеки
Ниже перечислены сторонние библиотеки, широко используемые в экосистеме Java:
| Категория | Название библиотеки | Основная функциональность | Официальный сайт |
|---|---|---|---|
| Обработка JSON | Jackson |
Сериализация/десериализация JSON | https://github.com/FasterXML/jackson |
Gson |
Библиотека JSON от Google | https://github.com/google/gson | |
| Модульное тестирование | JUnit |
Фреймворк модульного тестирования Java | https://junit.org/junit5/ |
Mockito |
Фреймворк для мок-тестирования | https://site.mockito.org/ | |
| Логирование | Log4j |
Фреймворк логирования | https://logging.apache.org/log4j/ |
SLF4J |
Фреймворк-фасад для логирования | https://www.slf4j.org/ | |
| Веб-разработка | Spring Framework |
Фреймворк корпоративных приложений | https://spring.io/projects/spring-framework |
Spring Boot |
Фреймворк быстрой разработки приложений | https://spring.io/projects/spring-boot | |
| Базы данных | Hibernate |
ORM-фреймворк | https://hibernate.org/ |
MyBatis |
Фреймворк SQL-маппинга | https://mybatis.org/mybatis-3/ | |
| Инструменты сборки | Maven |
Сборка проекта и управление зависимостями | https://maven.apache.org/ |
Gradle |
Гибкий инструмент сборки | https://gradle.org/ |
3. Как выбрать подходящую библиотеку
3.1 Критерии оценки
- Функциональные требования: сначала уточните, какие функции нужны проекту
- Поддержка сообщества: активное сообщество означает лучшую поддержку и документацию
- Производительность: для приложений, чувствительных к производительности, требуется особое внимание
- Кривая обучения: учитывайте затраты команды на обучение
- Статус поддержки: проверьте, продолжает ли проект активно поддерживаться
3.2 Рекомендации по выбору версии
- Отдавайте предпочтение версиям с долгосрочной поддержкой (LTS)
- Избегайте использования версий, которые больше не поддерживаются
- Новые проекты могут рассмотреть использование более новых стабильных версий
4. Примеры использования
4.1 Использование Jackson для обработки JSON
Пример
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonExample {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
// Объект в JSON
String json = mapper.writeValueAsString(new User("Zhang San", 25));
System.out.println(json);
// JSON в объект
User user = mapper.readValue(json, User.class);
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class JsonExample {
public static void main(String[] args) {
ObjectMapper mapper = new ObjectMapper();
try {
// Объект в JSON
String json = mapper.writeValueAsString(new User("Zhang San", 25));
System.out.println(json);
// JSON в объект
User user = mapper.readValue(json, User.class);
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
}
}
}
4.2 Использование JUnit для модульного тестирования
Пример
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class CalculatorTest {
@Test
void testAdd() {
Calculator calc = new Calculator();
assertEquals(5, calc.add(2, 3));
}
}
import static org.junit.jupiter.api.Assertions.*;
class CalculatorTest {
@Test
void testAdd() {
Calculator calc = new Calculator();
assertEquals(5, calc.add(2, 3));
}
}