当前位置: 首页 > news >正文

Java中常见API的分类概述及示例


1. 集合框架(java.util 包)

核心接口与实现类
接口实现类特点示例代码
ListArrayList, LinkedList有序、可重复List<String> list = new ArrayList<>(); list.add("Java");
SetHashSet, TreeSet无序、唯一Set<Integer> set = new HashSet<>(); set.add(10);
MapHashMap, LinkedHashMap键值对存储Map<String, Integer> map = new HashMap<>(); map.put("age", 25);
QueueLinkedList, 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)
  • ChannelFileChannelSocketChannel
  • BufferByteBufferCharBuffer
    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"));
    
并发工具
  • LockReentrantLock 替代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);
    
  • 正则表达式PatternMatcher
    Pattern pattern = Pattern.compile("\\d+");
    Matcher matcher = pattern.matcher("123");
    boolean matches = matcher.matches(); // true
    

总结

类别典型API适用场景
集合ArrayList, HashMap数据存储与快速访问
IO/NIOFiles, Path文件读写与高效IO操作
多线程ExecutorService, AtomicInteger并发任务与资源管理
日期时间LocalDateTime, Duration时间计算与格式化
函数式编程Stream, Lambda数据处理与链式操作

掌握这些API能显著提升开发效率,建议结合官方文档(Java SE Documentation 深入学习具体方法。

http://www.xdnf.cn/news/87967.html

相关文章:

  • Spark集群搭建-spark-local
  • [Java · 铢积寸累] 数据结构 — 数组类型 - Arrays 工具类详解
  • 文献分享:不同抗体表位作图技术比较
  • 《计算机视觉度量:从特征描述到深度学习》—深度学习图像特征工程
  • 动态加载内容时selenium如何操作?
  • Kubernetes相关的名词解释etcdctl(20)
  • 鸿蒙移动应用开发--渲染控制实验
  • 【MCP Node.js SDK 全栈进阶指南】初级篇(2):MCP基础服务器开发
  • Python3中使用jupyter notebook
  • Vue2 el-checkbox 虚拟滚动解决多选框全选卡顿问题 - 高性能处理大数据量选项列表
  • 高性能服务器配置经验指南1——刚配置好服务器应该做哪些事
  • 字符串全排列(Java版本自己用)
  • SpringBoot3集成MyBatis-Plus(解决Boot2升级Boot3)
  • MQ底层原理
  • AI代表企业签订的合同是否具有法律效力?
  • 第一章-语言基础\2.竞赛常用库函数\其他库函数
  • AXOP33552: 400MHz 高速双通道运算放大器
  • 《AI大模型应知应会100篇》 第33篇:大模型在法律文档处理中的应用
  • 第T9周:猫狗识别2
  • MySQL中根据binlog日志进行恢复
  • SAS宏调试:高效定位与解决典型问题
  • 德施曼重磅发布五大突破性技术及多款重磅新品,开启AI智能管家时代
  • 使用 rebase 轻松管理主干分支
  • 【Linux】静态库 动态库
  • ZLG嵌入式笔记 | 拯救NAND/eMMC:延长闪存寿命
  • OpenCv高阶(七)——图像拼接
  • 高级java每日一道面试题-2025年4月22日-基础篇[反射篇]-如何通过反射创建一个对象实例?
  • Redi的常见场景
  • Agent框架LangGraph:实现一个简单的Plan-and-Execute Agent
  • 使用Java调用TensorFlow与PyTorch模型:DJL框架的应用探索