1. 引言
Java API(Application Programming Interface)是 Java 编程语言的核心组成部分,提供了大量的预定义类和接口,使开发者能够高效地构建各种应用程序。Java API 按照功能可以分为多个大类,涵盖基础数据类型、集合框架、I/O 操作、网络编程、并发处理、数据库连接、GUI 开发等。本文将全面解析 Java API 的各个类别,并深入探讨其核心功能和应用场景。
2. 核心 Java 包(java.*)
2.1 语言基础类(java.lang)
`java.lang` 是 Java 最基础的包,无需显式导入即可使用,包含以下核心类:
- Object:所有 Java 类的超类,提供 `equals()`, `hashCode()`, `toString()` 等方法。
- String:不可变字符串类,支持字符串操作(如 `substring()`, `concat()`)。
- StringBuilder / StringBuffer:可变字符串,适用于频繁修改字符串的场景(`StringBuffer` 是线程安全的)。
- 基本数据类型的包装类:
- `Integer`, `Double`, `Boolean` 等,提供基本类型与对象的转换。
- Math:数学运算工具类,包含 `sqrt()`, `pow()`, `random()` 等方法。
- System:系统级操作,如标准输入输出(`System.out.println()`)、垃圾回收(`System.gc()`)。
- Thread:多线程支持,`Runnable` 接口用于定义线程任务。
示例:String 和 StringBuilder 的使用
String str = "Hello";
str = str.concat(" World"); // 创建新对象
StringBuilder sb = new StringBuilder("Hello");
sb.append(" World"); // 直接修改原对象
2.2 集合框架(java.util)
Java 集合框架提供了一系列数据结构和算法,主要分为:
2.2.1 Collection 接口
- List(有序、可重复):
- `ArrayList`:基于动态数组,查询快(O(1)),增删慢(O(n))。
- `LinkedList`:基于双向链表,增删快(O(1)),查询慢(O(n))。
- Set(无序、唯一):
- `HashSet`:基于哈希表,快速查找(O(1))。
- `TreeSet`:基于红黑树,自动排序(O(log n))。
- Queue(队列):
- `LinkedList` 也实现了 `Queue` 接口。
- `PriorityQueue`:优先级队列。
2.2.2 Map 接口(键值对存储)
- HashMap:基于哈希表,允许 `null` 键/值,无序。
- LinkedHashMap:保持插入顺序。
- TreeMap:基于红黑树,按键排序。
示例:List 和 Map 的使用
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
Map<String, Integer> map = new HashMap<>();
map.put("Java", 1);
map.put("Python", 2);
2.3 输入/输出(java.io 和 java.nio)
Java I/O 分为:
2.3.1 字节流(InputStream / OutputStream)
- `FileInputStream` / `FileOutputStream`:文件读写。
- `BufferedInputStream` / `BufferedOutputStream`:缓冲流,提高性能。
2.3.2 字符流(Reader / Writer)
- `FileReader` / `FileWriter`:文本文件读写。
- `BufferedReader` / `BufferedWriter`:缓冲字符流。
2.3.3 NIO(New I/O,Java 1.4+)
- `Path`、`Files`:更高效的文件操作。
- `Channel`、`Buffer`:非阻塞 I/O(适用于网络编程)。
示例:文件读取
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
2.4 并发编程(java.util.concurrent)
Java 提供强大的并发支持:
- 线程池:
- `ExecutorService`:线程池接口。
- `ThreadPoolExecutor`:可配置的线程池。
- 并发集合:
- `ConcurrentHashMap`:线程安全的 `HashMap`。
- `CopyOnWriteArrayList`:读多写少的线程安全 `List`。
- 同步工具:
- `CountDownLatch`:等待多个线程完成。
- `Semaphore`:控制并发访问数量。
示例:线程池使用
ExecutorService executor = Executors.newFixedThreadPool(4);
executor.submit(() -> {
System.out.println("Task running in thread: " + Thread.currentThread().getName());
});
executor.shutdown();
3. 企业级 Java 包(javax.*)
3.1 网络编程(java.net)
-Socket 编程:
- `Socket` / `ServerSocket`:TCP 通信。
- `DatagramSocket`:UDP 通信。
- HTTP 客户端(Java 11+):
- `HttpClient`:支持同步/异步 HTTP 请求。
示例:HTTP 请求
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com"))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
3.2 数据库连接(JDBC, java.sql)
JDBC(Java Database Connectivity)用于数据库操作:
- 核心接口:
- `Connection`:数据库连接。
- `Statement` / `PreparedStatement`:执行 SQL。
- `ResultSet`:查询结果集。
示例:JDBC 查询
try (Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "user", "password");
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users");
ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
System.out.println(rs.getString("username"));
}
} catch (SQLException e) {
e.printStackTrace();
}
3.3 XML 处理(javax.xml)
- DOM 解析:加载整个 XML 到内存。
- SAX 解析:事件驱动,适用于大文件。
- JAXB(Java 11+ 需单独引入):XML ↔ Java 对象映射。
4. 图形用户界面(GUI)
4.1 AWT(Abstract Window Toolkit)
- 基础 GUI 组件:`Button`, `Label`, `TextField`。
- 布局管理器:`FlowLayout`, `BorderLayout`。
4.2 Swing(javax.swing)
- 更丰富的组件:`JFrame`, `JTable`, `JTree`。
- 可更换外观(Look & Feel)。
4.3 JavaFX(javafx.*)
- 现代 GUI 框架,支持 CSS 样式、3D 图形。
5. 其他重要 API
5.1 日期时间(java.time, Java 8+)
- `LocalDate`:日期。
- `LocalTime`:时间。
- `DateTimeFormatter`:格式化。
5.2 反射(java.lang.reflect)
- 动态获取类信息:`Class`, `Method`, `Field`。
5.3 函数式编程(Java 8+)
- `Predicate`:条件判断。
- `Function`:数据转换。
- `Stream API`:集合流式处理。
6. 总结
Java API 提供了强大的功能,覆盖了从基础编程到企业级开发的各个方面。掌握这些 API 可以大幅提升开发效率,减少重复造轮子。随着 Java 版本的更新(如 Java 17 的 `Record`、`Sealed Classes`),API 仍在不断演进,开发者应持续关注新特性。
---
附录:Java API 官方文档
- [Oracle Java Docs](https://docs.oracle.com/en/java/)
- [Java Collections Framework](https://docs.oracle.com/javase/8/docs/technotes/guides/collections/)
- [Java Concurrency](https://docs.oracle.com/javase/tutorial/essential/concurrency/)

被折叠的 条评论
为什么被折叠?



