千家信息网

Java世界常用的工具类库有哪些

发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,小编给大家分享一下Java世界常用的工具类库有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Apache Common
千家信息网最后更新 2025年11月15日Java世界常用的工具类库有哪些

小编给大家分享一下Java世界常用的工具类库有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Apache CommonsApache Commons有很多子项目,常用的项目如下:

BeanUtils

提供了一系列对java bean的操作,读取和设置属性值等。

@Data public class User {     private String username;     private String password; }
User user = new User(); BeanUtils.setProperty(user, "username", "li"); BeanUtils.getProperty(user, "username");

map和bean的互相转换:

// bean->map Map map = BeanUtils.describe(user); // map->bean BeanUtils.populate(user, map);

我们将对象放在缓存中通常用redis中的hash,如下:

# 设置用户信息 hset student name test hset student age 10

这种场景下map和bean的互相转换的工具类就特别有用。

Codec

常见的编码,解码方法封装:

// Base64 Base64.encodeBase64String(byte[] binaryData) Base64.decodeBase64(String base64String)  // MD5 DigestUtils.md5Hex(String data)  // URL URLCodec.decodeUrl(byte[] bytes); URLCodec.encodeUrl(BitSet urlsafe, byte[] bytes);

Collections

交并差等操作:

// 判空 CollectionUtils.isEmpty(collA); // 交集 CollectionUtils.retainAll(collA, collB); // 并集 CollectionUtils.union(collA, collB); // 差集 CollectionUtils.subtract(collA, collB); // 判等 CollectionUtils.isEqualCollection(collA, collB);

I/O

IOUtils对IO操作的封装

// 拷贝流 IOUtils.copy(InputStream input, OutputStream output); // 从流中读取内容,转为list List line = IOUtils.readLines(InputStream input, Charset encoding);

FileUtils

对文件操作类的封装

File file = new File("/show/data.text"); // 按行读取文件 List lines = FileUtils.readLines(file, "UTF-8"); // 将字符串写入文件 FileUtils.writeStringToFile(file, "test", "UTF-8"); // 文件复制 FileUtils.copyFile(srcFile, destFile);

Lang

StringUtils 以下断言测试通过

// isEmpty的实现 cs == null || cs.length() == 0; return true assertEquals(true, StringUtils.isEmpty(""));  assertEquals(true, StringUtils.isBlank(null)); assertEquals(true, StringUtils.isBlank("")); // 空格 assertEquals(true, StringUtils.isBlank(" ")); // 回车 assertEquals(true, StringUtils.isBlank("    "));

Pair和Triple 当想返回2个或3个值,但这几个值没有相关性,没有必要单独封装一个对象,就可以用到如下数据结构,返回Pair或Triple对象

Pair pair = new ImmutablePair<>(1, 2); // 1 2 System.out.println(pair.getLeft() + " " + pair.getRight());  Triple triple = new ImmutableTriple<>(1,2,3); // 1 2 3 System.out.println(triple.getLeft() + " " + triple.getMiddle() + " " + triple.getRight());

Google Guava

集合的创建

// 普通集合的创建Listlist = Lists.newArrayList();Setset = Sets.newHashSet();// 不可变集合的创建ImmutableListlist = ImmutableList.of("a", "b", "c");ImmutableSetset = ImmutableSet.of("a", "b");

不可变集合是线程安全的,并且中途不可改变,因为add等方法是被声明为过期,并且会抛出异常。

// 普通集合的创建 List list = Lists.newArrayList(); Set set = Sets.newHashSet();  // 不可变集合的创建 ImmutableList list = ImmutableList.of("a", "b", "c"); ImmutableSet set = ImmutableSet.of("a", "b");

各种黑科技集合

// use java Map> map = new HashMap>(); // use guava Multimap map = ArrayListMultimap.create(); map.put("key1", 1); map.put("key1", 2); // [1, 2] System.out.println(map.get("key1"));

2个键映射一个值

Table table = HashBasedTable.create(); table.put("a", "a", 1); table.put("a", "b", 2); // 2 System.out.println(table.get("a", "b"));

还有很多其他各种类型的集合,不再介绍。

stop watch

查看某段代码的运行时间

Stopwatch stopwatch = Stopwatch.createStarted(); // do something long second = stopwatch.elapsed(TimeUnit.SECONDS);

TimeUnit 可以指定时间精度

Joda Time

jdk1.8之前,日期操作类常用的只有java.util.Date和java.util.Calendar,但是这2个类的易用性实在太差了,SimpleDateFormat不是线程安全的 。这就逼迫用户去选择第三方的日期操作类,Joda Time就是其中的佼佼者。

2者的api很相似,如果公司的jdk版本在1.8以上推荐使用jdk1.8新推出的日期类,如果在1.8以下推荐使用Joda Time。

以上是"Java世界常用的工具类库有哪些"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

常用 文件 封装 工具 内容 对象 日期 篇文章 可变 世界 普通 安全 方法 时间 用户 线程 UTF-8 推荐 佼佼 相似 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 立方视频车位引导服务器 家庭服务器的软硬件要求 华侨华人名人档案数据库建设 2021网络安全宣传视频片头 泾县进口软件开发服务是什么 我的世界死去的服务器 网络技术的最新突破 查看gpu服务器显卡状态 国内服务器制造绝对龙头 南京华为鲲鹏服务器 郑大远程教育数据库原理与应用 中国行业发展数据库 pactera邮箱服务器 网络安全应该怎么保护自己 能不能用别的服务器的数据库 海典数据库管理系统 网络安全亲子约定书图画 服务器防刷安全级别 台州定制软件开发 掌上网关服务器地址怎么设置 软件开发公司没有测试人员 公需科目考试 网络安全法 广电网络技术论坛 南宁友联网络技术有限公司 联邦式数据库原理讲解 山西曙光服务器虚拟化哪家好 丹江口软件开发包括哪些 北仑软件开发培训 数据库int不用双引号 学的软件开发很难找工作怎么办
0