Java之Hutool/Guava/Apache Commons工具包项目实践
概述
- Hutool是一个Java工具包,提供了丰富的工具类和方法,目的是简化开发任务提高开发效率;适用于需要快速开发和实现多种功能的场景,适合项目需要处理字符串、日期、文件等常见任务时~
- toBeBetterJavaer/docs/common-tool/StringUtils.md at master · itwanger/toBeBetterJavaer · GitHub
- Guava是Google开发的Java工具库,提供了一系列核心库的扩展,包括集合、字符串、缓存、异常验证、I/O 流操作等;适用于需要高性能集合操作、复杂缓存策略、并发编程等场(实际项目开发中我们使用Guava作为本地缓存的实现)
- https://github.com/itwanger/toBeBetterJavaer/blob/master/docs/common-tool/guava.md
- Java 本地缓存之Guava Cache_本地缓存 guavacache-CSDN博客
- https://github.com/itwanger/toBeBetterJavaer/blob/master/docs/common-tool/guava.md
- Apache Commons是Apache软件基金会提供的一组Java工具库, 由于其稳定性和广泛的应用经常被采用
- toBeBetterJavaer/docs/common-tool/StringUtils.md at master · itwanger/toBeBetterJavaer · GitHub
- 可根据项目的具体需求和团队的技术栈来选择使用 Hutool或Guava或其他。在某些情况下需要结合使用,以发挥各自的优势~
项目实践
package com.bierce;import java.awt.Color;
import java.awt.Font;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.lang.reflect.Constructor;
import java.util.Date;import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.BetweenFormater;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.Zodiac;
import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.IoUtil;
import cn.hutool.core.lang.Console;
import cn.hutool.core.lang.Validator;
import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.ReflectUtil;
import cn.hutool.core.util.ZipUtil;
import cn.hutool.crypto.SecureUtil;public class HutoolsTest {public static void main(String[] args) {//一. Hutool 工具包实践 https://github.com/itwanger/toBeBetterJavaer/blob/master/docs/common-tool/hutool.md//1. 类型转换String numStr = "22";int num = Convert.toInt(numStr, 0); // 22//2. Md5加密String myPwd = "bishuai123";String md5MyPwd = SecureUtil.md5().digestHex(myPwd); // 9cf7b74f75eb22be5af45ccfed7093a5//3. 日期处理String dateStr = "2020-09-29 22:33:23";Date writeTextDate = DateUtil.parse(dateStr);Date todayDate = DateUtil.date();long betweenDay = DateUtil.between(writeTextDate, todayDate, DateUnit.MS);String formatBetween = DateUtil.formatBetween(betweenDay, BetweenFormater.Level.SECOND);System.out.println("formatBetween = " + formatBetween); //格式化时间差: 1359天19小时3分34秒//星座和属相String zodiac = Zodiac.getZodiac(DateUtil.parse("1995-03-18"));System.out.println("星座 = " + zodiac); // 双鱼座String chineseZodiac = Zodiac.getChineseZodiac(DateUtil.parse("1995-02-18"));System.out.println("属相 = " + chineseZodiac); // 猪//4. IO 流相关-网络操作和文件操作(文件目录的新建、删除、复制、移动、改名\判断文件或目录是否非空,是否为目录,是否为文件等)BufferedInputStream in = FileUtil.getInputStream("hutool/origin.txt");BufferedOutputStream out = FileUtil.getOutputStream("hutool/to.txt"); //默认输出项目路径:\target\test-classeslong copySize = IoUtil.copy(in, out, IoUtil.DEFAULT_BUFFER_SIZE);System.out.println("copySize = " + copySize);//5. 字符串工具,和 Apache Commons Lang 包中的 StringUtils 类似//6. 反射工具// 构建对象HutoolsTest hutoolsTest = ReflectUtil.newInstance(HutoolsTest.class);System.out.println("hutoolTest = " + hutoolsTest);// 获取构造方法Constructor<HutoolsTest>[] constructors = ReflectUtil.getConstructors(HutoolsTest.class);for (Constructor constructor : constructors) {System.out.println(constructor.getName());}//7. 压缩工具ZipUtil.zip("hutool", "hutool.zip");//默认输出项目路径:\target\test-classesFile unzip = ZipUtil.unzip("hutool.zip", "hutoolzip");//默认输出项目路径:\target\test-classes//8. 身份证工具: 支持大陆 15 位、18 位身份证,港澳台 10 位身份证String ID_18 = "321083197812162119";boolean valid = IdcardUtil.isValidCard(ID_18);// 是否有效= true//9. 控制台打印Console.log("墨行子,一枚有趣的程序员");// 打印字符串 墨行子,一枚有趣的程序员Console.log("西安是{}朝古都","13");// 打印字符串模板 西安是13朝古都int [] ints = {1,2,3,4};Console.log(ints);// 打印数组 [1, 2, 3, 4]//10. 字段验证器(是不是邮箱/IP V4、V6/电话号码等等)boolean isEmail = Validator.isEmail("墨行子"); // isEmail = falseboolean isMobile = Validator.isMobile("itwanger.com"); // isMobile = falseboolean isIPV4 = Validator.isIpv4("192.168.56.1"); // isIPV4 = true//11. 图片工具( ImgUtil 可以对图片进行缩放、裁剪、转为黑白、加水印等操作)ImgUtil.pressText(//FileUtil.file("hutool/snow.jpg"),FileUtil.file("hutool/snow2.jpg"),"墨行子", Color.RED,new Font("黑体", Font.BOLD, 50),0,0,0.8f); // 输出文件路径: \target\test-classes\hutool//12. 加密解密(对称加密AES、DES,非对称RSA,摘要加密MD5、SHA-256等)String encry = SecureUtil.md5().digestHex("墨行子"); //Md5加密: 8c4c11f5b8391b2eebbad4a9a0436e4e//二. 其他常用工具包//1. Apache commons工具包; 地址:https://github.com/itwanger/toBeBetterJavaer/blob/master/docs/common-tool/StringUtils.md//2. guava 工具包; 地址:https://github.com/itwanger/toBeBetterJavaer/blob/master/docs/common-tool/guava.md//3. 其他常用Java工具类:IpUtil、MDC、ClassUtils、BeanUtils、ReflectionUtils; 地址:https://github.com/itwanger/toBeBetterJavaer/blob/master/docs/common-tool/utils.md}}
相关文章:
Java之Hutool/Guava/Apache Commons工具包项目实践
概述 Hutool是一个Java工具包,提供了丰富的工具类和方法,目的是简化开发任务提高开发效率;适用于需要快速开发和实现多种功能的场景,适合项目需要处理字符串、日期、文件等常见任务时~ toBeBetterJavaer/docs/common-tool/StringUtils.md at master itwanger/toBeBetterJavae…...
哈喽GPT-4o——对GPT-4o 提示词的思考与看法
目录 一、提示词二、常用的提示词案例1、写作助理2、改写为小红书风格3、英语翻译和改写4、论文式回答5、主题解构6、提问助手7、Nature风格润色8、结构总结9、编程助手10、充当终端/解释器 大家好,我是哪吒。 最近,ChatGPT在网络上广受欢迎,…...
《计算机英语》 Unit 3 Software Engineering 软件工程
Section A Software Engineering Methodologies 软件工程方法论 Software development is an engineering process. 软件开发是一个工程过程。 The goal of researchers in software engineering is to find principles that guide the software development process and lea…...
2024-6-18(沉默Spring,Springboot)
1.Spring小结 我们最后再来体会一下用 Spring 创建对象的过程: 通过 ApplicationContext 这个 IoC 容器的入口,用它的两个具体的实现子类,从 class path 或者 file path 中读取数据,用 getBean() 获取具体的 bean instance。 那…...
Java热部署:让应用更新如丝般顺滑,告别繁琐重启!
目录 手动启动热部署 自动启动热部署 参与热部署监控的文件范围配置 关闭热部署 什么是热部署?简单说就是你程序改了,现在要重新启动服务器,嫌麻烦?不用重启,服务器会自己悄悄的把更新后的程序给重新加载一遍&…...
微信小程序毕业设计-小区疫情防控系统项目开发实战(附源码+论文)
大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…...
PyTorch -- RNN 快速实践
RNN Layer torch.nn.RNN(input_size,hidden_size,num_layers,batch_first) input_size: 输入的编码维度hidden_size: 隐含层的维数num_layers: 隐含层的层数batch_first: True 指定输入的参数顺序为: x:[batch, seq_len, input_size]h0:[batc…...
SpringBoot 快速入门(保姆级详细教程)
目录 一、Springboot简介 二、SpringBoot 优点: 三、快速入门 1、新建工程 方式2:使用Spring Initializr创建项目 写在前面: SpringBoot 是 Spring家族中的一个全新框架,用来简化spring程序的创建和开发过程。SpringBoot化繁…...
【第18章】Vue实战篇之登录界面
文章目录 前言一、数据绑定1. 数据绑定2. 数据清空 二、表单校验1. 代码2. 展示 三、登录1.登录按钮2.user.js3. login 四、展示总结 前言 上一章完成用户注册,这一章主要做用户登录。 一、数据绑定 登录和注册使用相同的数据绑定 1. 数据绑定 <!-- 登录表单 -…...
[C++]使用C++部署yolov10目标检测的tensorrt模型支持图片视频推理windows测试通过
【测试通过环境】 vs2019 cmake3.24.3 cuda11.7.1cudnn8.8.0 tensorrt8.6.1.6 opencv4.8.0 【部署步骤】 获取pt模型:https://github.com/THU-MIG/yolov10训练自己的模型或者直接使用yolov10官方预训练模型 下载源码:https://github.com/laugh12321/yol…...
分享uniapp + Springboot3+vue3小程序项目实战
分享uniapp Springboot3vue3小程序项目实战 经过10天敲代码,终于从零到项目测试完成,一个前后端分离的小程序实战项目学习完毕 时间从6月12日 到6月22日,具有程序开发基础,第一次写uniapp,Springboot以前用过,VUE3也…...
Ubuntu 24.04安装zabbix7.0.0图形中文乱码
当zabbix安装完成后,设置中文界面时,打开图形,中文内容会显示方框乱码,是因为服务器字体中没有相关的中文字体,需要更换。 1、找到中文字体,可以在网络上下载《得意黑》开源字体,也可以在windo…...
MybatisPlus 调用 原生SQL
方式一 DemoMapper.java Mapper public interface DemoMapper extends BaseMapper<TableConfig> {Update("${sql}")int createTable(Param("sql") String sql); }测试代码 SpringBootTest class DemoMapperTest {Resourceprivate DemoMapper demo…...
1.SG90
目录 一.实物图 二.原理图 三.简介 四.工作原理 一.实物图 二.原理图 三.简介 舵机(英文叫Servo),是伺服电机的一种,伺服电机就是带有反馈环节的电机,这种电机可以进行精确的位置控制或者输出较高的扭矩。舵机…...
【yolov8语义分割】跑通:下载yolov8+预测图片+预测视频
1、下载yolov8到autodl上 git clone https://github.com/ultralytics/ultralytics 下载到Yolov8文件夹下面 另外:现在yolov8支持像包一样导入,pip install就可以 2、yolov8 语义分割文档 看官方文档:主页 -Ultralytics YOLO 文档 还能切…...
基于STM8系列单片机驱动74HC595驱动两个3位一体的数码管
1)单片机/ARM硬件设计小知识,分享给将要学习或者正在学习单片机/ARM开发的同学。 2)内容属于原创,若转载,请说明出处。 3)提供相关问题有偿答疑和支持。 为了节省单片机MCU的IO口资源驱动6个数码管&…...
Jlink下载固件到RAM区
Jlink下载固件到RAM区 准备批处理搜索exe批处理读取bin数据解析调用jlink批处理准备jlink脚本 调用执行 环境:J-Flash V7.96g 平台:arm cortex-m3 准备批处理 搜索exe批处理 find_file.bat echo off:: 自动识别脚本名和路径 set "SCRIPT_DIR%~dp…...
Kotlin基础——Typeclass
高阶类型 如在Iterable新增泛型方法时 interface Iterable<T> {fun filter(p: (T) -> Boolean): Iterable<T>fun remove(p: (T) -> Boolean): Iterable<T> filter { x -> !p(x) } }对应的List、Set实现上述方法时仍需要返回具体的类型 interfac…...
DC-DC 高压降压、非隔离AC-DC、提供强大的动力,选择优质电源芯片-(昱灿)
畅享长续航,尽在我们的充电芯片! 无论是手机、平板还是智能设备,长时间使用后电量不足总是令人头疼。然而,我们的充电芯片将为您带来全新的充电体验!采用先进的技术,我们的充电芯片能够提供快速而稳定的充电…...
GPT-4o的视觉识别能力,将绕过所有登陆的图形验证码
知识星球🔗除了包含技术干货:《Java代码审计》《Web安全》《应急响应》《护网资料库》《网安面试指南》还包含了安全中常见的售前护网案例、售前方案、ppt等,同时也有面向学生的网络安全面试、护网面试等。 我们来看一下市面上常见的图形验证…...
【LinuxC语言】进程间的通信——管道
文章目录 前言不同进程间通信的方式管道匿名管道和命名管道半双工与全双工管道相关函数创建管道总结前言 在Linux操作系统中,进程是执行中的程序的实例。每个进程都有自己的地址空间,数据栈以及其他用于跟踪进程执行的辅助数据。操作系统管理这些进程,并通过调度算法来分享…...
CompletableFuture 基本用法
一、 CompletableFuture简介 CompletableFuture 是 Java 8 引入的一个功能强大的类,用于异步编程和并发处理。它提供了丰富的 API 来处理异步任务的结果,支持函数式编程风格,并允许通过链式调用组合多个异步操作。 二、CompletableFuture中…...
网页如何发布到服务器上
将网页发布到服务器上的过程涉及多个步骤,包括准备阶段、选择托管提供商、发布网站等。12 准备阶段: 确保在本地开发环境中对网站进行了充分的测试,包括功能测试、性能测试和安全测试。 检查Web.config文件,确保所有的配置设置…...
Jenkins简要说明
Jenkins 是一个开源的持续集成和持续部署(CI/CD)工具,广泛用于自动化软件开发过程中的构建、测试和部署等任务。它是基于Java开发的,因此可以在任何支持Java的平台上运行,并且能够与各种操作系统、开发工具和插件无缝集…...
C# 比较基础知识:最佳实践和技巧
以下是一些在 C# 中进行比较的技巧和窍门的概述。 1. 比较原始类型 对于原始类型(int、double、char 等),可以使用标准比较运算符。 int a 5; int b 10; bool isEqual (a b); // false bool isGreater (a > b); // false bool is…...
Ansible 自动化运维实践
随着 IT 基础设施的复杂性不断增加,手动运维已无法满足现代企业对高效、可靠的 IT 运维需求。Ansible 作为一款开源的自动化运维工具,通过简洁易用的 YAML 语法和无代理(agentless)架构,极大简化了系统配置管理、应用部…...
红队攻防渗透技术实战流程:中间件安全:IISNGINXAPACHETOMCAT
红队攻防渗透实战 1. 中间件安全1.1 中间件-IIS-短文件&解析&蓝屏等1.2 中间件-Nginx-文件解析&命令执行等1.2.1 后缀解析 文件名解析1.2.2 cve_2021_23017 无EXP有POC1.2.3 cve_2017_7529 意义不大1.3 中间件-Apache-RCE&目录遍历&文件解析等1.3.1 cve_20…...
如何卸载宝塔面板?
宝塔官方有提供宝塔面板的卸载命令,使用这个卸载命令,我们就能将宝塔面板卸载掉。 这里有一点需要注意的,如果卸载宝塔面板的同时,也希望将 Nginx、MySQL、PHP 等组件卸载掉,那么我们应该先在宝塔面板里面卸载掉以上软…...
python入门基础知识(错误和异常)
本文部分内容来自菜鸟教程Python 基础教程 | 菜鸟教程 (runoob.com) 本人负责概括总结代码实现。 以此达到快速复习目的 目录 语法错误 异常 异常处理 try/except try/except...else try-finally 语句 抛出异常 用户自定义异常 内置异常类型 常见的标准异常类型 语法…...
迈巴赫S480升级增强现实AR抬头显示hud比普通抬头显示HUD更好用吗
增强AR实景抬头显示HUD(Augmented Reality Head-Up Display)是一种更高级的驾驶辅助技术,相比于普通抬头显示HUD,它提供了更丰富、更具沉浸感的驾驶体验。以下是它比普通抬头显示HUD多的一些功能: • 信息呈现方式&am…...
专业网站开发联系方式/网络市场调研的方法
邮件接收 思路 构造一个邮件对象就是一个Messag对象,如果构造一个MIMEText对象,就表示一个文本邮件对象,如果构造一个MIMEImage对象,就表示一个作为附件的图片,要把多个对象组合起来,就用MIMEMultipart对…...
做网站和优化共多少钱?/seo视频
# Celery ## 1.什么是Celery Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 ### Celery架构 ![20150314100608_187](C:\Users\Administrator\Desktop\celery和hystack\20150314100608_187.png) Celery…...
梧州网站建设推广/怎么做网站优化
1.查看有无安装过mysqlrpm -qa|grep mysql2.查看有无安装包yum list mysql*3.虚拟机关掉eth0,联网后,安装mysql服务yum install mysql-serveryum install mysql-devel4.开启eth0,Xshell连接后,启动&&停止服务(1)在mysql配…...
安庆做网站/网络营销有什么方式
一、BeautifulSoup库简介BeautifulSoup是一个灵活方便的网页解析库,处理搞笑,支持多种解析器。利用它可以不用编写正则表达式就可以方便的实现网页信息的抓取。BeautifulSoup是爬虫必学技能,其最主要的功能是从网页抓取数据。BeautifulSoup自…...
镇江网站制作价格如何计算/品牌营销策划是干嘛的
转自https://www.cnblogs.com/liang545621/p/9434016.html MySQL锁小结 锁的作用:避免并发请求时对同一个数据对象同时修改,导致数据不一致。怎么加锁:1.事务T1在对某个数据对象R1操作之前,先向系统发出请求,对其加锁L…...
如何在网站上木马/做互联网项目怎么推广
#include # define norw 13 /*关键字个数*/# define txmax 100 /*名字表容量*/# define nmax 14 /*number的最大位数*/# define al 10 /*符号的最大长度*/# define amax 2047 /*地址上界*/# define levmax 3 /*最大允许过程嵌套声明层数[0,lexmax]*/# define cxmax …...