Hutool 基本介绍和使用说明

工具篇之Hutool Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。 阅读详情

Hutool 是一个开源的 Java 工具包,旨在简化 Java 开发中的常见操作,提供大量高内聚、低耦合的工具类,覆盖日常开发中频繁使用的功能,如字符串处理、集合操作、IO、日期时间、加密、JSON、HTTP、文件压缩等。它不依赖任何第三方框架,体积轻量(核心模块仅约 1MB),易于集成,特别适合中小型项目或需要快速开发的场景。


✅ Hutool 的主要作用

  • 简化开发:封装常用操作,避免重复造轮子。
  • 提升可读性:方法命名清晰,链式调用友好。
  • 减少依赖:无第三方框架依赖(核心模块)。
  • 兼容性强:支持 Java 8+,适配主流 JDK 版本。
  • 文档丰富:官方文档详尽,示例丰富。

📦 Hutool 主要模块及作用(按功能分类)

模块名称作用说明
hutool-core核心模块,包含最常用的工具类:字符串、集合、日期、IO、反射、加密、系统信息等。
hutool-crypto加密解密工具,支持 AES、RSA、SHA、MD5、Base64、哈希等。
hutool-db简化 JDBC 操作,提供 Db、SqlRunner 等类,无需写原生 SQL 模板。
hutool-http封装 HTTP 请求(GET/POST/PUT/DELETE),支持上传、Cookie、Header、代理等。
hutool-jsonJSON 处理工具,基于 org.json,支持 JSONObject、JSONArray 的便捷操作。
hutool-log日志门面封装,支持 Log4j、Logback、SLF4J 等,统一接口。
hutool-cache缓存工具,提供 Cache 接口及 LRU、TTL 等实现。
hutool-extra扩展模块,包含邮件、模板引擎(Velocity)、二维码、PDF、Excel 等高级功能。
hutool-aop简单 AOP 切面支持,用于方法拦截、日志记录等。
hutool-system系统信息获取,如 CPU、内存、磁盘、进程等。
hutool-poi封装 Apache POI,简化 Excel 读写操作(.xlsx / .xls)。
hutool-script脚本引擎支持,如 JavaScript(Nashorn)、Groovy 等。
hutool-bloomfilter布隆过滤器实现,用于大数据量去重场景。
hutool-weixin微信相关工具(公众号、小程序 API 封装)。
hutool-socketSocket 通信工具,简化 TCP/UDP 编程。
hutool-jwtJWT(JSON Web Token)生成与解析工具模块。

✅ 开发建议:一般项目只需引入 hutool-core 和 hutool-http 即可满足 80% 需求。


🔧 Hutool 常用工具类及详细使用示例(含中文注释)

1. StrUtil — 字符串工具类
import cn.hutool.core.util.StrUtil;

public class StrUtilExample {
    public static void main(String[] args) {
        // 判断字符串是否为空(null、""、空白字符均返回 true)
        boolean isEmpty = StrUtil.isEmpty("   "); // true
        System.out.println("字符串是否为空: " + isEmpty);

        // 判断字符串是否为非空(与 isEmpty 相反)
        boolean isNotEmpty = StrUtil.isNotEmpty("Hello"); // true
        System.out.println("字符串是否非空: " + isNotEmpty);

        // 去除首尾空格并判断是否为空
        boolean isBlank = StrUtil.isBlank(" \t\n "); // true
        System.out.println("字符串是否为空白: " + isBlank);

        // 截取字符串(从第2位开始,截取3个字符)
        String sub = StrUtil.sub("HelloWorld", 2, 5); // "llo"
        System.out.println("截取子串: " + sub);

        // 格式化字符串(类似 String.format)
        String formatted = StrUtil.format("姓名:{},年龄:{}", "张三", 25);
        System.out.println("格式化字符串: " + formatted); // 姓名:张三,年龄:25

        // 将字符串转为驼峰命名(下划线转驼峰)
        String camel = StrUtil.toCamelCase("user_name"); // "userName"
        System.out.println("下划线转驼峰: " + camel);

        // 驼峰转下划线
        String underscore = StrUtil.toUnderlineCase("userName"); // "user_name"
        System.out.println("驼峰转下划线: " + underscore);

        // 拼接多个字符串,用逗号分隔
        String join = StrUtil.join(",", "A", "B", "C"); // "A,B,C"
        System.out.println("拼接字符串: " + join);
    }
}

2. CollectionUtil — 集合工具类
import cn.hutool.core.collection.CollUtil;
import java.util.*;

public class CollectionUtilExample {
    public static void main(String[] args) {
        // 创建一个非空列表(避免 null)
        List<String> list = CollUtil.newArrayList("苹果", "香蕉", "橙子");
        System.out.println("创建列表: " + list);

        // 判断集合是否为空
        boolean isEmpty = CollUtil.isEmpty(list); // false
        System.out.println("集合是否为空: " + isEmpty);

        // 判断集合是否包含某个元素
        boolean contains = CollUtil.contains(list, "香蕉"); // true
        System.out.println("是否包含香蕉: " + contains);

        // 将数组转为集合
        String[] arr = {"A", "B", "C"};
        List<String> fromArray = CollUtil.newArrayList(arr);
        System.out.println("数组转集合: " + fromArray);

        // 过滤集合(保留长度大于 2 的字符串)
        List<String> filtered = CollUtil.filter(list, s -> s.length() > 2);
        System.out.println("过滤后: " + filtered); // [苹果, 香蕉, 橙子]

        // 转为 Map(key-value 对)
        Map<String, String> map = CollUtil.map("name", "张三", "age", "25");
        System.out.println("转为 Map: " + map); // {name=张三, age=25}

        // 合并两个集合
        List<String> list2 = CollUtil.newArrayList("葡萄", "梨子");
        List<String> merged = CollUtil.addAll(list, list2);
        System.out.println("合并后: " + merged);
    }
}

3. DateUtil — 日期时间工具类
import cn.hutool.core.date.DateUtil;
import java.util.Date;

public class DateUtilExample {
    public static void main(String[] args) {
        // 获取当前时间
        Date now = new Date();
        System.out.println("当前时间: " + now);

        // 格式化日期为字符串(yyyy-MM-dd HH:mm:ss)
        String formatted = DateUtil.format(now, "yyyy-MM-dd HH:mm:ss");
        System.out.println("格式化日期: " + formatted);

        // 解析字符串为 Date 对象
        Date parsed = DateUtil.parse("2025-01-01 12:30:00", "yyyy-MM-dd HH:mm:ss");
        System.out.println("解析日期: " + parsed);

        // 获取当前时间戳(毫秒)
        long timestamp = DateUtil.current();
        System.out.println("当前时间戳: " + timestamp);

        // 计算两个日期相差天数
        Date start = DateUtil.parse("2025-01-01");
        Date end = DateUtil.parse("2025-01-10");
        long days = DateUtil.betweenDay(start, end, false); // false 表示不包含起始日
        System.out.println("相差天数: " + days); // 9

        // 获取当前时间的前7天
        Date weekAgo = DateUtil.offsetDay(new Date(), -7);
        System.out.println("一周前: " + DateUtil.format(weekAgo, "yyyy-MM-dd"));

        // 判断是否为今天
        boolean isToday = DateUtil.isToday(new Date());
        System.out.println("是否为今天: " + isToday);
    }
}

4. FileUtil — 文件与 IO 工具类
import cn.hutool.core.io.FileUtil;
import java.io.File;
import java.util.List;

public class FileUtilExample {
    public static void main(String[] args) {
        // 创建临时文件
        File tempFile = FileUtil.tempFile();
        System.out.println("临时文件路径: " + tempFile.getAbsolutePath());

        // 判断文件是否存在
        boolean exists = FileUtil.exist("D:/test.txt");
        System.out.println("文件是否存在: " + exists);

        // 读取文件内容为字符串(UTF-8)
        String content = FileUtil.readString("D:/test.txt", "UTF-8");
        System.out.println("文件内容: " + content);

        // 写入内容到文件(自动创建目录)
        FileUtil.writeUtf8String("Hello Hutool!", "D:/output/hello.txt");

        // 获取文件扩展名
        String ext = FileUtil.extName("document.pdf"); // "pdf"
        System.out.println("文件扩展名: " + ext);

        // 获取文件大小(字节)
        long size = FileUtil.size(new File("D:/test.txt"));
        System.out.println("文件大小: " + size + " 字节");

        // 递归删除目录
        FileUtil.del("D:/tempDir"); // 删除整个目录及其内容

        // 获取目录下所有文件(递归)
        List<File> files = FileUtil.loopFiles("D:/data");
        System.out.println("目录下文件数: " + files.size());
    }
}

5. JsonUtil — JSON 工具类
import cn.hutool.json.JSONUtil;
import java.util.HashMap;
import java.util.Map;

public class JsonUtilExample {
    public static void main(String[] args) {
        // 创建 Java 对象
        Map<String, Object> user = new HashMap<>();
        user.put("name", "李四");
        user.put("age", 30);
        user.put("married", false);

        // 将 Java 对象转为 JSON 字符串
        String jsonStr = JSONUtil.toJsonStr(user);
        System.out.println("Java 对象转 JSON: " + jsonStr);
        // 输出: {"name":"李四","age":30,"married":false}

        // 将 JSON 字符串转为 Map
        Map<String, Object> parsed = JSONUtil.parseObj(jsonStr);
        System.out.println("JSON 转回 Map: " + parsed.get("name")); // 李四

        // 转为 JavaBean(需有无参构造)
        UserBean userBean = JSONUtil.toBean(jsonStr, UserBean.class);
        System.out.println("转为 JavaBean: " + userBean.getName());

        // 格式化 JSON(带缩进)
        String prettyJson = JSONUtil.toJsonPrettyStr(user);
        System.out.println("格式化 JSON:\n" + prettyJson);
    }

    // 用于转换的 JavaBean 类
    static class UserBean {
        private String name;
        private Integer age;
        private Boolean married;

        // getter/setter 必须有
        public String getName() { return name; }
        public void setName(String name) { this.name = name; }
        public Integer getAge() { return age; }
        public void setAge(Integer age) { this.age = age; }
        public Boolean getMarried() { return married; }
        public void setMarried(Boolean married) { this.married = married; }
    }
}

6. HttpUtil — HTTP 请求工具类(GET/POST)
import cn.hutool.http.Method;
import cn.hutool.http.Request;
import cn.hutool.http.Response;

public class HttpUtilExample {
    public static void main(String[] args) {
        // 发起 GET 请求
        String response = cn.hutool.http.HttpUtil.get("https://httpbin.org/get");
        System.out.println("GET 请求响应:\n" + response);

        // 发起 POST 请求(带参数)
        String postResult = cn.hutool.http.HttpUtil.post("https://httpbin.org/post",
                "name=王五&age=28");
        System.out.println("POST 请求响应:\n" + postResult);

        // 使用 Request 对象更灵活控制
        Request request = cn.hutool.http.Request.create(Method.POST, "https://httpbin.org/post")
                .addHeader("Content-Type", "application/json")
                .addHeader("User-Agent", "Hutool-Client")
                .body("{\"name\":\"赵六\",\"city\":\"北京\"}"); // JSON 格式请求体

        Response response2 = request.execute();
        System.out.println("自定义 Header POST 响应状态码: " + response2.getStatus());
        System.out.println("响应内容: " + response2.body());
    }
}

7. ZipUtil — 压缩与解压工具类(重点)
import cn.hutool.archive.zip.ZipUtil;
import java.io.File;
import java.util.List;

public class ZipUtilExample {
    public static void main(String[] args) {
        // 1. 压缩文件夹为 ZIP
        // 将 "D:/source" 目录下的所有文件压缩成 "D:/backup.zip"
        File sourceDir = new File("D:/source");
        File zipFile = new File("D:/backup.zip");

        // 创建压缩文件(如果目录不存在会自动创建)
        ZipUtil.zip(zipFile, sourceDir);
        System.out.println("✅ 已将目录压缩为: " + zipFile.getAbsolutePath());

        // 2. 压缩多个文件
        File file1 = new File("D:/source/file1.txt");
        File file2 = new File("D:/source/file2.txt");
        File multiZip = new File("D:/multi_files.zip");
        ZipUtil.zip(multiZip, file1, file2);
        System.out.println("✅ 已将多个文件压缩为: " + multiZip.getAbsolutePath());

        // 3. 解压 ZIP 文件到指定目录
        File destDir = new File("D:/extracted");
        ZipUtil.unzip(zipFile, destDir); // 解压到 D:/extracted
        System.out.println("✅ 已将 " + zipFile.getName() + " 解压到: " + destDir.getAbsolutePath());

        // 4. 查看 ZIP 文件中包含的文件列表
        List<File> entries = ZipUtil.list(zipFile);
        System.out.println("ZIP 文件内包含的文件:");
        entries.forEach(entry -> System.out.println("  - " + entry.getName()));

        // 5. 压缩时指定编码(解决中文文件名乱码问题)
        // Hutool 默认使用 UTF-8,但在某些系统(如 Windows)中可能需指定
        ZipUtil.zip(zipFile, sourceDir, "GBK"); // 指定编码为 GBK,避免乱码
        System.out.println("✅ 已使用 GBK 编码重新压缩(适用于中文路径)");
    }
}

⚠️ ZipUtil 使用注意事项:

  • 压缩中文文件名时,若目标系统为 Windows,建议显式指定编码为 "GBK",避免乱码。
  • 解压时默认使用 UTF-8,若压缩包是 GBK 编码,需在 unzip(zipFile, destDir, "GBK") 中指定。
  • 压缩和解压操作会覆盖同名文件,请确保目标路径安全。

✅ 推荐使用方式(Maven 依赖)

<!-- 核心模块(必选) -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-core</artifactId>
    <version>5.8.22</version>
</dependency>

<!-- HTTP 请求(推荐) -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-http</artifactId>
    <version>5.8.22</version>
</dependency>

<!-- JSON 处理(推荐) -->
<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-json</artifactId>
    <version>5.8.22</version>
</dependency>

<!-- 文件压缩(ZipUtil)已包含在 hutool-core 中 -->

✅ 版本建议:使用最新稳定版(当前推荐 5.8.x),避免使用过旧版本。


📌 总结:Hutool 的优势

优势说明
轻量无依赖核心模块无第三方依赖,适合嵌入式项目
API 简洁方法命名直观,链式调用流畅
覆盖全面几乎涵盖 Java 开发 90% 常用工具
社区活跃GitHub Star 超 40k,文档完善
企业级应用国内大量银行、保险、政务系统采用

💡 开发建议

  • 优先使用 StrUtil、CollectionUtil、DateUtil、FileUtil、JsonUtil、HttpUtil、ZipUtil。
  • 避免过度依赖 hutool-extra 中的复杂模块(如 POI、PDF),除非必要。
  • 在团队中统一 Hutool 版本,避免因版本差异导致兼容问题。
  • 对于高并发场景,注意 ZipUtil 的资源释放(建议使用 try-with-resources 或手动关闭流)。

如需进一步学习,可访问官方文档:https://hutool.cn/
Hutool 是 Java 开发者的“瑞士军刀”,合理使用可显著提升开发效率!

浅谈Hutool工具类 Hutool是一个Java工具类库,它封装了很多常用的Java工具类,如加密解密、文件操作、日期时间处理、Http客户端等。它的目标是让Java开发变得更加简单、高效。Hutool是一个十分实用的Java工具类库,它封装了很多Java开发中常用的工具类和方法。在开发过程中,我们可以利用Hutool提供的工具类来加速开发、提高效率。 阅读详情

相关推荐

Hutool工具包等常用工具类总结

一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件 模块 介绍 hutool-aop JDK动态代理封装,提供非IOC下的切面支持 hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤 hutool-cache 简单缓存实现 hutool-core 核心,包括Bean操作、日期、各种Util等 hutool-cron 定时任务模块,提供类Cro

程序员一博 6578

好用的Java工具类库—— Hutool

好用的Java工具类库—— Hutool

Javaの甘乃迪的博客 3万+

STM32以太网通信-STM32以太网外设(ETH)

通过 DMA 控制器进行介质访问控制 (MAC) STM32F4xx系列控制器内部集成了一个以太网外设,它实际上是一个通过DMA控制器进行介质访问控制(MAC),它的功能就是实现MAC 层的任务。 借助以太网外设,STM32F4xx 控制器可以通过ETH 外设按照IEEE 802.3-2002 标准发送和接收MAC 数据包。 ETH 内部自带专用的DMA 控制器用于MAC,ETH 支持两个工业标准接口介质独立接口(MII)和简化介质独立接口(RMII)用于与外部PHY 芯片连接。MII 和RMII 接口用于

暖暖_的_纠结的博客 2万+

Hutool介绍(详)

Hutool介绍(详细介绍)

一名代码爱好者的博客 5万+

Second-Order Cone Programming(SOCP) 二阶锥规划

个人博客Glooow,欢迎各位老师来踩踩 文章目录1. 二阶锥1.1 二阶锥定义1.2 二阶锥约束2. 优化问题建模3. 类似问题转化3.1 二次规划3.2 随机线性规划4. 问题求解 1. 二阶锥 1.1 二阶锥定义 在此之前,先给出二阶锥的定义。 在 kkk 维空间中二阶锥 (Second-order cone) 的定义为 Ck={[ut]∣u∈Rk−1,t∈R,∥u∥≤t} \mathc...

Glooow的博客 3万+

声发射传感器的工作原理是什么?

介绍声发射传感器的工作原理。

qq_39948394的博客 9246

java种的hutool库接口说明和整理

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

XiaoCai 2183

SPV1050低功耗微功率太阳能充电管理模块原理图设计,已量产

在物联网应用快速普及的今天,户外低功耗传感器(如土壤温湿度、环境光照、无线节点等)的供电始终是行业痛点 —— 传统锂电池不仅需要定期更换,维护成本高,还难以满足 “终身免维护” 的场景需求。为此,我们设计了一款专为 1V~3V 低电压小型太阳能板优化的微功率太阳能电源管理模块,结合 USB 备用充电路径,实现了低功耗传感器的长期自主供电。

不脱发的程序猿 443

Hutool工具说明和使用步骤

Hutool 是一个 Java 工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让 Java 语言也可以 “甜甜的”。Hutool 最初是我项目中 “util” 包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。

java之书-资源 783

量子编程专业权威教程(十四):Shor 算法

本文系统阐述了Shor算法的原理与实现,重点解析了将大数分解问题转化为周期寻找问题的数论基础,以及模幂运算量子电路的设计方法。通过以N=15为例的完整算法流程演示,展示了量子计算在因数分解问题上的指数级优势。文章详细拆解了受控幺正操作构建、量子傅里叶变换应用等关键技术环节,并提供了可复现的Qiskit代码实现。同时指出了当前量子硬件在比特数、相干时间和错误率等方面面临的工程挑战,这些限制使得分解大整数仍需长期技术突破。该研究为理解量子计算优势提供了典型范例,对后量子密码学发展具有重要启示意义。

分享知识,拥抱变化 797

SAP 中配置权限职责菜单并分配给用户的核心流程是:用PFCG 创建 / 维护角色(含菜单、事务码、权限)→ 生成权限参数文件 → 通过 SU01/SU10 将角色分配给用户

SAP权限配置核心流程:1)通过PFCG创建角色,配置菜单事务码及权限对象;2)生成权限参数文件;3)用SU01/SU10分配角色给用户。关键步骤包括:在PFCG中维护菜单结构、设置权限字段值、生成Profile,通过用户比较验证权限。批量分配可用SU10,特殊需求可创建复合角色或自定义权限对象。常见问题需检查权限缺失(SU53)、菜单分配及组织级别设置。流程简化为:创建角色→配置权限→分配用户→验证生效。

金牌架构师 1271

【Java】工具包(hutool)

hutool工具包在市场上用的人是越来越多了,怎么能证明它的受欢迎程度呢?有一个平台叫做GitHub,它是国际性的代码托管平台,很多人,很多公司会将项目的源代码放到这个平台上面,所以是我们程序员最喜欢的一个网站,在这个网站上能找到很多很多各种各样的开源项目,因此这个网站也被我们程序员戏称为:最大的同性交友网站。hutool在GitHub上就是非常受欢迎的开源项目之一。hutool是国人开发的开源工具包,里面有很多帮助我们提高开发效率的API。其中Hu是汉语拼音胡,是开发作者致敬前任公司。tool。

qq_39921135的博客 4708

微信小程序开发:实现地图导航功能

其中,id用于调用地图组件,latitude和longitude表示地图的中心点坐标,markers表示地图中的标记点,covers表示地图中的覆盖物,polyline表示地图中的折线图,show-location表示是否显示当前定位点,bindregionchange表示移动地图时触发的事件。其中,id表示标记点的唯一标识,latitude和longitude表示标记点的坐标,title表示标记点的名称,iconPath表示标记点的图标路径,width和height表示标记点的宽度和高度。

吃不胖. 8917

Hutool工具包:http客户端工具(使用教程)

Hutool参考文档Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

路漫漫其修远兮,吾将上下而求索 1万+

基于STM32L4XX 、HAL库的ATD5984步进电机驱动器驱动程序应用设计

一、简介: ATD5984是一款内部集成了译码器的微特步进电机 驱动器,能使双极步进电机以全、半、1/4、/1/8、1/16 和1/32步进模式工作。步进模式由逻辑输入管脚MSx选 择。其输出驱动能力达到28V±1.6A。 译码器是ATD5984易于使用的关键,通过STEP管脚 输入一个脉冲就可以使电机完成一次步进,省去了相序 表,高频控制线及复杂的编程接口,使其更适于没有复 杂的微处理器或微处理器负担过重的场合。 在步进操作期间,ATD5984的内部电路可以自动

PP_Cottage的博客 404

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java使用hutool工具类发送网络请求

Java使用hutool工具类发送网络请求引入jar包使用案例 引入jar包 1.如果是JavaWeb工程,需要下载jar包,将jar包放入WEB-INF\lib目录中。 2.如果是maven工程,需要在pom.xml文件里加入hutool相关的依赖,此处以hutool4.1.2版本为例: <dependency> <groupId>cn.hutool</group...

北冥煮鲲 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

一款非常好用的工具库:Hutool

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

一位想要成为优秀全栈工程师的有志青年! 1570

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Hutool工具库使用记录

Hutool 简介 和Apache Commons,Google guava类似的工具包。但是国产的,有着完善的中文文档和代码中文注释。对于英文不好的程序猿,这点特别有吸引力。还有就是本人的一贯原则就是只要国产的和国外的水平相差不大的情况下,优先支持国产。 本人的使用体验是:hutool集合了Apache和guava的优点,而且不依赖第三方jar包。举个例子来说,Hutool-log会自动按下面的顺序自动识别当前项目中实际使用的日志框架: Slf4j(Logback) > Log4j > Log

namelessmyth的专栏 1454

Hutool - Cache:简单而强大的缓存实现

在软件开发中,缓存是一种常用的技术,用于减少对频繁访问的数据的重复计算或查询,从而提高系统的性能和响应速度。Hutool - Cache 是 Hutool 工具包中的一个模块,它提供了多种简单易用的缓存实现,能满足不同场景下的缓存需求。Hutool - Cache 提供了多种简单易用的缓存实现,通过不同的缓存策略可以满足不同场景下的缓存需求。在实际开发中,可以根据具体的业务需求选择合适的缓存类型,并利用其提供的基本操作方法来管理缓存数据,从而提高系统的性能和响应速度。

十年磨一剑,java开发各种业务系统 2182

7hutool实战:DateUtil(时间工具类)-日期计算

hutool实战:包含日期的各种计算方式 关键字:java java JAVA hutool hutool Hutool 工具类 工具类 工具类 DateUtil DateUtil DateUtil

小虚竹的专栏 4万+

Hutool Java工具库使用教程

Hutool是一个功能丰富且易用的Java工具库,旨在帮助开发者快速、便捷地完成各类开发任务。通过诸多实用工具类的使用,Hutool涵盖了字符串、数字、集合、编码、日期、文件、IO、加密、数据库JDBC、JSON、HTTP客户端等一系列操作,可以满足各种不同的开发需求。 Hutool名称的由来:Hutool = Hu + tool,是原公司项目底层代码剥离后的开源库。"Hu"是公司名称的表示,t...

gitblog_00040的博客 966

hutool实现java代码邮件发送

SpringBoot是一个快速开发的框架,它简化了Spring应用的开发过程,通过自动配置和约定大于配置的原则,让开发者能够更加专注于业务逻辑的实现,而不是繁琐的配置工作。通过SpringBoot的自动配置和Hutool的便捷工具类,我们可以轻松实现邮件发送功能。无论是简单的文本邮件,还是复杂的HTML邮件和带附件的邮件,都可以通过简洁的代码完成。

weixin_44006311的博客 1067

使用Hutool工具类加载properties和yml配置文件

我们的设计函数的思路如下:1.传递的参数为:配置类的类型、要加载配置文件的前缀(比如yml中的Gavinrpc)、环境(可以为空)2.返回值为:配置对象的泛型。

toytoytelecar的博客 1677

【Hutool】之树形结构

Hutool 工具类将List转为树形结构

吉光片羽的博客 344

【限时免费】 【hutool】开源下载和安装教程

【hutool】开源下载和安装教程 【免费下载链接】hutool ????小而全的Java工具类库,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。 项目地址: https://gitcode.com/chinabug...

gitblog_01403的博客 484

java工具包—Commons-io和使用文档,Hutool工具包

readUtf8 Lines:按照UTF-8的形式,把文件中的数据,读到集合中。appendLines:把集合中的数据写出到文件中,续写模式,readLines:指定字符编码,把文件中的数据,读到集合中。appendLines:把集合中的数据写出到文件中,续写模式,readLines:指定字符编码,把文件中的数据,读到集合中。writeLines:把集合中的数据写出到文件中,覆盖模式。writeLines:把集合中的数据写出到文件中,覆盖模式。fi1e:根据参数创建一个fi1e对象。

2302_80073130的博客 800
上一篇: Spring Boot 3 文件上传下载与 Excel 导入导出完整指南
下一篇: IntelliJ IDEA 自定义注释标记配置指南
龙茶清欢
博客等级 码龄7年 3720粉丝 375原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙茶清欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值