Java中常见API的分类概述及示例
1. 集合框架(java.util 包)
核心接口与实现类
接口 | 实现类 | 特点 | 示例代码 |
---|---|---|---|
List | ArrayList, LinkedList | 有序、可重复 | List<String> list = new ArrayList<>(); list.add("Java"); |
Set | HashSet, TreeSet | 无序、唯一 | Set<Integer> set = new HashSet<>(); set.add(10); |
Map | HashMap, LinkedHashMap | 键值对存储 | Map<String, Integer> map = new HashMap<>(); map.put("age", 25); |
Queue | LinkedList, PriorityQueue | 先进先出(FIFO)或优先级队列 | Queue<String> queue = new LinkedList<>(); queue.offer("task"); |
工具类
- Collections:排序、查找等工具方法
Collections.sort(list); // 排序
- Arrays:数组操作
int[] arr = {3,1,2}; Arrays.sort(arr); // 数组排序
2. 输入输出(java.io 与 java.nio 包)
传统IO
- 字节流:
InputStream
(如FileInputStream
)、OutputStream
- 字符流:
Reader
(如FileReader
)、Writer
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {String line = br.readLine(); }
NIO(非阻塞IO)
- Channel:
FileChannel
、SocketChannel
- Buffer:
ByteBuffer
、CharBuffer
Path path = Paths.get("file.txt"); List<String> lines = Files.readAllLines(path); // 读取所有行
3. 多线程与并发(java.util.concurrent 包)
线程管理
- Thread:创建线程
new Thread(() -> System.out.println("Running")).start();
- ExecutorService:线程池管理
ExecutorService executor = Executors.newFixedThreadPool(4); executor.submit(() -> System.out.println("Task"));
并发工具
- Lock:
ReentrantLock
替代synchronized
- Atomic类:原子操作(如
AtomicInteger
)AtomicInteger count = new AtomicInteger(0); count.incrementAndGet(); // 线程安全递增
4. 日期时间(java.time 包,Java 8+)
核心类
- LocalDate:日期(年月日)
LocalDate date = LocalDate.now(); // 2023-10-05
- LocalDateTime:日期时间
LocalDateTime now = LocalDateTime.now();
- Duration/Period:时间间隔计算
5. 字符串处理(java.lang 包)
- String:不可变字符串
String str = "Hello".substring(0, 3); // "Hel"
- StringBuilder/StringBuffer:可变字符串(后者线程安全)
StringBuilder sb = new StringBuilder(); sb.append("Java").reverse(); // "avaJ"
6. 网络编程(java.net 包)
- HTTP请求(Java 11+)
HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder().uri(URI.create("https://example.com")).build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
7. 反射(java.lang.reflect 包)
- Class:获取类信息
Class<?> clazz = String.class; Method[] methods = clazz.getMethods(); // 获取所有公共方法
- 动态创建对象
Object instance = clazz.getDeclaredConstructor().newInstance();
8. 函数式编程(Java 8+)
Stream API
List<String> list = Arrays.asList("a", "b", "c");
list.stream().filter(s -> s.startsWith("a")).forEach(System.out::println);
函数式接口
- Predicate:条件判断
Predicate<Integer> isEven = n -> n % 2 == 0;
- Function:数据转换
Function<String, Integer> lengthFunc = String::length;
9. 单元测试(JUnit 框架)
@Test
public void testAddition() {assertEquals(4, 2 + 2); // 断言测试
}
10. 其他实用API
- Optional:避免空指针
Optional<String> opt = Optional.ofNullable(getName()); opt.ifPresent(System.out::println);
- 正则表达式:
Pattern
与Matcher
Pattern pattern = Pattern.compile("\\d+"); Matcher matcher = pattern.matcher("123"); boolean matches = matcher.matches(); // true
总结
类别 | 典型API | 适用场景 |
---|---|---|
集合 | ArrayList, HashMap | 数据存储与快速访问 |
IO/NIO | Files, Path | 文件读写与高效IO操作 |
多线程 | ExecutorService, AtomicInteger | 并发任务与资源管理 |
日期时间 | LocalDateTime, Duration | 时间计算与格式化 |
函数式编程 | Stream, Lambda | 数据处理与链式操作 |
掌握这些API能显著提升开发效率,建议结合官方文档(Java SE Documentation 深入学习具体方法。