好的!以下是《Java SE(13)——工具类》的完整教学与讲解文案,适合用于技术教程、项目开发说明、学习笔记,也可以扩展为视频解说脚本或PPT内容。


✅ Java SE(13)——常用工具类详解

掌握 Java 标准库中的工具类,是迈向高效开发的必经之路!


🎯 教程目标

本章节将带你系统掌握 Java SE 中常用的工具类,覆盖文本处理、日期时间、集合工具、数学计算、对象操作、并发处理等多个领域。通过实例与原理结合,帮助你灵活运用 Java 工具库应对日常开发中的各种需求。


📚 目录

  1. java.lang.Math — 数学运算工具
  2. java.util.Arrays — 数组处理工具
  3. java.util.Objects — 对象操作工具
  4. java.util.Collections — 集合处理工具
  5. java.util.UUID — 生成唯一标识符
  6. java.text.DecimalFormat — 数值格式化
  7. java.time — 日期与时间工具类
  8. java.util.Random / ThreadLocalRandom — 随机数生成
  9. java.util.Base64 — 编解码工具
  10. java.nio.file.Paths / Files — 文件操作工具
  11. 第三方常见工具(推荐:Apache Commons / Google Guava)

1️⃣ Math:数学计算工具类

int max = Math.max(10, 20);     // 返回最大值
double sqrt = Math.sqrt(16);   // 平方根
double pi = Math.PI;           // 圆周率常量
double pow = Math.pow(2, 10);  // 2的10次方

亮点:

  • 所有方法都是静态方法
  • 精度高、执行快
  • 常用于算法、数据处理等场景

2️⃣ Arrays:数组操作工具类

int[] nums = {3, 1, 2};
Arrays.sort(nums);                          // 数组排序
System.out.println(Arrays.toString(nums));  // 输出:[1, 2, 3]

int[] copy = Arrays.copyOf(nums, 5);        // 拷贝新数组

亮点:

  • 内置排序(快排/归并)
  • 可用于查找、填充、拷贝、转换
  • 推荐搭配 Stream 使用

3️⃣ Objects:对象辅助工具类

Objects.requireNonNull(obj, "不能为空");
boolean isEqual = Objects.equals(a, b);     // 安全比较
int hash = Objects.hash(a, b, c);           // 快速生成 hashCode

用途:

  • 避免空指针异常
  • 编写高质量 equals/hashCode 方法辅助
  • 常用于 Java Bean 工具类封装

4️⃣ Collections:集合处理工具类

List<String> list = new ArrayList<>();
Collections.addAll(list, "A", "B", "C");
Collections.sort(list);                      // 排序
Collections.shuffle(list);                   // 随机打乱
List<String> syncList = Collections.synchronizedList(list);

适用场景:

  • 集合操作快捷方法(增删查改)
  • 线程安全包装(synchronized)
  • 查找最大/最小值、替换操作等

5️⃣ UUID:唯一标识符生成器

String uuid = UUID.randomUUID().toString();
System.out.println(uuid); // 示例: a8c1d3f8-31ea-4e60-a2a2-9a3b0cc8eabc

使用场景:

  • 主键 ID
  • Token 唯一标识
  • 防重码/会话 ID 等

6️⃣ DecimalFormat:数值格式化

DecimalFormat df = new DecimalFormat("#,###.00");
String result = df.format(1234567.891); // 1,234,567.89

用途:

  • 金额格式化
  • 科学计数转普通格式
  • 控制小数点位数

7️⃣ java.time:现代日期时间工具类(JDK8+)

LocalDate today = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.now();
Duration duration = Duration.between(time1, time2);
Period period = Period.between(date1, date2);

推荐使用类:

  • LocalDate / LocalTime / LocalDateTime
  • DateTimeFormatter
  • Duration / Period
  • ZoneId / ZonedDateTime

8️⃣ Random 与 ThreadLocalRandom:随机数生成

Random random = new Random();
int n = random.nextInt(100); // 0~99

int threadSafeRandom = ThreadLocalRandom.current().nextInt(100);

ThreadLocalRandom 优于 Random 的并发性能
适用于:验证码生成、模拟数据、抽奖等功能


9️⃣ Base64:数据编码解码

String text = "HelloJava";
String encoded = Base64.getEncoder().encodeToString(text.getBytes());
byte[] decodedBytes = Base64.getDecoder().decode(encoded);
String decoded = new String(decodedBytes);

用途:

  • 图片/音频等二进制编码传输
  • Token 加密传输
  • API 通信签名

🔟 Paths 与 Files:文件工具类(java.nio)

Path path = Paths.get("data.txt");
List<String> lines = Files.readAllLines(path);
Files.write(path, "Hello".getBytes());

优势:

  • Java 7+ 新特性
  • 替代老旧 File 类
  • 支持流式 IO、异常更友好

💡 推荐三方工具类(可补充)

工具包核心用途
Apache CommonsStringUtils, IOUtils, BeanUtils 等
Google GuavaLists, Maps, Preconditions 等
Hutool(国产)DateUtil, StrUtil, CollUtil

✅ 总结

工具类场景推荐等级
Math数学运算⭐⭐⭐⭐
Arrays数组操作⭐⭐⭐⭐
Objects对象比较/验证⭐⭐⭐⭐
Collections集合操作⭐⭐⭐⭐
UUID唯一 ID 生成⭐⭐⭐
DecimalFormat数值格式化⭐⭐⭐
java.time时间管理⭐⭐⭐⭐⭐
Base64编码解码⭐⭐⭐⭐
Paths / Files文件操作⭐⭐⭐⭐

📘 延伸阅读建议

  • 《Effective Java》—— 工具类的最佳实践
  • Java 官方 API 文档
  • Apache Commons & Guava 工具箱合集

✅ 示例项目已成功打包!

你可以点击下面链接下载这个 Java 工具类 DEMO 工程代码:

📦 下载 java-tools-demo.zip


该项目包含以下功能类:

  • MathUtil:数学最大值方法
  • ArrayUtil:数组打印工具
  • ObjectUtil:对象比较工具
  • UuidUtil:随机 UUID 生成器
  • DateUtil:格式化时间工具
  • Base64Util:Base64 编码工具
  • ToolApp:主类演示调用

如你希望我加入更多工具类(如文件工具、加解密、字符串处理等),请继续告诉我,我可以继续扩展并重新打包。是否需要我现在添加更多功能?