好的!以下是《Java SE(13)——工具类》的完整教学与讲解文案,适合用于技术教程、项目开发说明、学习笔记,也可以扩展为视频解说脚本或PPT内容。
✅ Java SE(13)——常用工具类详解
掌握 Java 标准库中的工具类,是迈向高效开发的必经之路!
🎯 教程目标
本章节将带你系统掌握 Java SE 中常用的工具类,覆盖文本处理、日期时间、集合工具、数学计算、对象操作、并发处理等多个领域。通过实例与原理结合,帮助你灵活运用 Java 工具库应对日常开发中的各种需求。
📚 目录
java.lang.Math
— 数学运算工具java.util.Arrays
— 数组处理工具java.util.Objects
— 对象操作工具java.util.Collections
— 集合处理工具java.util.UUID
— 生成唯一标识符java.text.DecimalFormat
— 数值格式化java.time
— 日期与时间工具类java.util.Random
/ThreadLocalRandom
— 随机数生成java.util.Base64
— 编解码工具java.nio.file.Paths
/Files
— 文件操作工具- 第三方常见工具(推荐: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 Commons | StringUtils, IOUtils, BeanUtils 等 |
Google Guava | Lists, 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 工程代码:
该项目包含以下功能类:
MathUtil
:数学最大值方法ArrayUtil
:数组打印工具ObjectUtil
:对象比较工具UuidUtil
:随机 UUID 生成器DateUtil
:格式化时间工具Base64Util
:Base64 编码工具ToolApp
:主类演示调用
如你希望我加入更多工具类(如文件工具、加解密、字符串处理等),请继续告诉我,我可以继续扩展并重新打包。是否需要我现在添加更多功能?
发表回复