FilesLast commitLast update
1 month ago
30 days ago
1 month ago
README

Java 工具库

Java 开发效率提升——常用工具集与注解提效方案。


模块导航

序号 主题 核心内容 子 README
01 工具库 Hutool / Apache Commons / Guava 三大工具集对比 README
02 Lombok 注解驱动的代码简化:getter/setter/builder/日志 README

1.1 学习路径

  • 入门:工具库 → Hutool(国内项目首选)或 Apache Commons(稳定兼容)
  • 进阶:Lombok → 注解减少样板代码,配合工具库进一步提升效率

知识脉络

graph TB
    Java["Java 工具库"]
    Java --> Libs["工具集"]
    Java --> Lombok["Lombok 注解"]

    Libs --> Hutool["Hutool<br/>国产轻量/中文文档"]
    Libs --> Commons["Apache Commons<br/>老牌稳定/模块化"]
    Libs --> Guava["Guava<br/>高性能集合/并发"]

    Lombok --> Basic["@Data @Getter @Setter"]
    Lombok --> Builder["@Builder 链式调用"]
    Lombok --> Log["@Slf4j 日志生成"]
    Lombok --> Advanced["@Value @Delegate @UtilityClass"]

速查表 / Cheat Sheet

概念 解释 典型场景
Hutool 国产轻量工具库,静态方法封装 JDK 底层 中小型项目快速开发,中文文档友好
Apache Commons 老牌模块化工具库(Lang/IO/Collections) 企业级系统,高兼容性要求
Guava Google 工具库,不可变集合/缓存/RateLimiter 高并发系统,高性能集合操作
@Data Lombok 组合注解(getter+setter+toString+equals+构造器) POJO 类一键生成
@Builder 建造者模式,支持链式调用 复杂对象构造
@Slf4j 自动生成日志记录器 替代手写 Logger 声明
@Value 生成不可变类(字段 final,无 setter) 值对象/DTO
编译期生成 Lombok 通过 JSR 269 注解处理器修改 AST 不改变运行时行为

核心内容

4.1 工具集对比

三大工具库各有侧重:Hutool 以场景全覆盖和中文生态取胜,适合国内快速开发;Apache Commons 模块化设计、接口稳定、兼容老版本 Java,适合传统企业系统;Guava 在集合类革新和并发工具(CacheBuilder/RateLimiter/EventBus)上领先,适合高性能场景。三者非互斥,可按需组合使用。

最小 Maven 依赖(按需引入,版本以 Maven Central 最新稳定版为准):

<dependencies>
  <!-- Hutool 全家桶(也可按模块引入 hutool-core / hutool-http 等) -->
  <dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.27</version>
  </dependency>
  <!-- Apache Commons Lang3 -->
  <dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.14.0</version>
  </dependency>
  <!-- Guava -->
  <dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>33.2.0-jre</version>
  </dependency>
  <!-- Lombok(provided:仅编译期生效) -->
  <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.32</version>
    <scope>provided</scope>
  </dependency>
</dependencies>

4.2 Lombok 注解提效

Lombok 通过编译期注解处理器(JSR 269)修改抽象语法树生成代码。覆盖基础功能(@Data/@Getter/@Setter/@ToString)、构造器(@NoArgsConstructor/@AllArgsConstructor)、高级模式(@Builder/@Slf4j/@Cleanup/@SneakyThrows)和特殊场景(@Value/@Delegate/@UtilityClass)。需注意 IDE 插件依赖和过度使用对可读性的影响。


最佳实践

  • 国内项目标配:Hutool + Lombok,开发效率最大化
  • 不可变优先:使用 @Value 替代 @Data 定义值对象,提升线程安全性
  • 构造器注入:配合 @RequiredArgsConstructor + final 字段,推荐 Spring 构造器注入
  • 避免滥用:Lombok 仅用于 POJO 和简单工具类,复杂逻辑保持手写可读性

常见面试题

  • Hutool、Commons、Guava 各自的核心优势?
  • Lombok 的工作原理是什么?会影响运行时吗?
  • @Data 和 @Value 的区别?
  • Guava 的 CacheBuilder 和 JDK HashMap 有什么区别?
  • Lombok 的 @Builder 如何实现链式调用?

📊 本节统计

子目录 leaf README 数 备注
03-java/(本文) 1 顶层
├─ tool-library/ 1 Hutool / Commons / Guava 对比
└─ lombok/ 1 Lombok 注解速查
分类 leaf 合计 2 depth-2 + 1 顶层 = 3 100% frontmatter
学习路径主题数 2 条(入门:工具库 → 进阶:Lombok) 见上方学习路径

数字基线:本节以 leaf README 数 + 学习路径主题数双口径统计


相关章节


← 返回工具链总览