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 | 
Google 的 JSON 库 | https://github.com/google/gson | |
| 单元测试 | JUnit | 
Java 单元测试框架 | https://junit.org/junit5/ | 
Mockito | 
Mock 测试框架 | https://site.mockito.org/ | |
| 日志记录 | Log4j | 
日志记录框架 | https://logging.apache.org/log4j/ | 
SLF4J | 
日志门面框架 | https://www.slf4j.org/ | |
| Web 开发 | 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("张三", 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("张三", 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));
}
}
 
       
点我分享笔记