Java常用API

一、集合框架(Collection API)

1. 核心接口及实现类

接口/类 说明 常用方法
List<E> 有序、可重复集合 add(), get(), remove(), size()
ArrayList<E> 基于数组实现,查询快 同List
LinkedList<E> 基于链表实现,增删快 addFirst(), removeLast()
Map<K,V> 键值对存储,键唯一 put(k, v), get(k), keySet(), containsKey()
HashMap<K,V> 哈希表实现,无序 同Map
LinkedHashMap<K,V> 保留插入顺序 同Map
Set<E> 元素唯一,无序集合 add(), contains(), remove()
HashSet<E> 基于HashMap实现 同Set
Queue<E> 队列(FIFO) offer(), poll(), peek()

2. 工具类

  • Collections :

    复制代码

    <JAVA>

    复制代码
    Collections.sort(list);                      // 排序
    Collections.reverse(list);                   // 反转
    List<Integer> synList = Collections.synchronizedList(list); // 线程安全
  • Arrays :

    复制代码

    <JAVA>

    复制代码
    Arrays.sort(arr);                            // 数组排序
    List<String> list = Arrays.asList("A", "B"); // 数组转List(只读)

二、IO/NIO

1. 基础IO类

类 用途
File 文件或目录的抽象表示
FileInputStream 字节输入流(读取文件)
FileOutputStream 字节输出流(写入文件)
BufferedReader 缓冲字符输入流(高效读取文本)
BufferedWriter 缓冲字符输出流(高效写入文本)

示例:读取文本文件

复制代码

<JAVA>

复制代码
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
} // try-with-resources自动关闭流

2. NIO(Java 7+)

  • Path 和 Paths : 代替File操作文件路径

    复制代码

    <JAVA>

    复制代码
    Path path = Paths.get("data", "test.txt"); // 获取路径
  • Files : 文件操作工具类

    复制代码

    <JAVA>

    复制代码
    byte[] data = Files.readAllBytes(path);    // 读取文件所有字节
    Files.write(path, content.getBytes());     // 写入文件
    List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8); // 读取所有行

三、多线程

1. 线程管理

  • Thread类:

    复制代码

    <JAVA>

    复制代码
    Thread thread = new Thread(() -> System.out.println("子线程执行"));
    thread.start();  // 启动线程
    thread.join();   // 等待线程结束
  • ExecutorService线程池:

    复制代码

    <JAVA>

    复制代码
    ExecutorService pool = Executors.newFixedThreadPool(4);  // 创建线程池
    pool.submit(() -> { /* 任务逻辑 */ });                    // 提交任务
    pool.shutdown();                                         // 关闭线程池

2. 线程安全工具

  • ConcurrentHashMap:高并发Map

  • CopyOnWriteArrayList:写时复制的线程安全List

  • AtomicInteger :原子操作类

    复制代码

    <JAVA>

    复制代码
    AtomicInteger count = new AtomicInteger(0);
    count.incrementAndGet();  // 原子自增

四、日期时间(Java 8+)

类 说明 示例
LocalDate 日期(年-月-日) LocalDate.now() ➔ 2023-10-01
LocalTime 时间(时分秒) LocalTime.of(14, 30) ➔ 14:30
LocalDateTime 日期 + 时间 LocalDateTime.parse("2023-10-01T14:30:00")
DateTimeFormatter 日期格式化 DateTimeFormatter.ofPattern("yyyy/MM/dd")
Duration 时间间隔(秒/毫秒) Duration.between(startTime, endTime)

五、工具类

1. Objects

  • 判空与比较 :

    复制代码

    <JAVA>

    复制代码
    if (Objects.isNull(obj)) { ... }               // 判空
    if (Objects.equals(str1, str2)) { ... }        // 安全比较

2. Optional(Java 8+)

  • 避免空指针 :

    复制代码

    <JAVA>

    复制代码
    Optional<String> opt = Optional.ofNullable(str);
    opt.ifPresent(s -> System.out.println(s));    // 值存在时执行
    String result = opt.orElse("default");        // 安全取值

3. String 基础API

  • 常用方法 :

    复制代码

    <JAVA>

    复制代码
    str.length();                     // 字符串长度
    str.substring(0, 3);              // 截取子串
    str.split(",");                   // 拆分字符串
    str.contains("Java");             // 是否包含子串
    String.join("-", "A", "B", "C");  // 拼接字符串 ➔ "A-B-C"

六、其他高频API

  • 反射:

    复制代码

    <JAVA>

    复制代码
    Class<?> clazz = Class.forName("com.example.MyClass");   // 获取Class对象
    Method method = clazz.getMethod("methodName");           // 获取方法
    Object instance = clazz.newInstance();                   // 创建实例
    method.invoke(instance);                                 // 调用方法
  • 正则表达式:

    复制代码

    <JAVA>

    复制代码
    Pattern pattern = Pattern.compile("\\d+");           // 匹配数字
    Matcher matcher = pattern.matcher("abc123");
    if (matcher.find()) {
        System.out.println(matcher.group());             // 输出"123"
    }

总结

  • 集合框架 :优先选用ArrayList、HashMap,注意线程安全问题。
  • IO/NIO :掌握Files工具类,推荐try-with-resources管理流。
  • 多线程 :使用线程池(ExecutorService)代替直接创建Thread。
  • 日期时间 :弃用 Date和Calendar,改用Java 8新API。
  • 工具类 :善用Optional处理空值,简化代码逻辑。
相关推荐
2301_780789663 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
学长毕设3 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
步行cgn4 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川4 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵4 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
秋天的怀念_David5 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Raas1005 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品
niucloud-admin5 小时前
NIUCLOUD PHP SAAS上门家政使用文档:城市管理
java·前端·php
霸道流氓气质6 小时前
智能客服组件:分层意图识别、RAG Advisor 与人工转接状态机的 Vue3 + Spring AI 生产级实战
java·人工智能·spring
captain3766 小时前
MyBatis操作数据库(入门2)
java·数据库·spring boot·后端·spring·mybatis