工具类用的好,下班下的早(下)

简介: 大家好,我是指北君。我的好朋友小 B 又又又被上司踢了一 jio,这次是因为写的代码太烂了。有些代码是可以用第三方库类快速实现的。下面一起来看看可以节省 90% 的加班时间的第三方开源库吧。

beanutils Bean 操作

beanutils 是通过反射机制对 JavaBean 进行操作的。比如对 Bean 进行复制、map 转对象、对象转 Map。

maven 依赖28.png29.png

Guava

Google 开源的一个基于 Java 扩展项目,包含了一些基本工具、集合扩展、缓存、并发工具包、字符串处理等。

maven 依赖

30.png

Map<String, List> 类型

在java 代码中经常会遇到需要写 Map<String, List> map 的局部变量的时候。有时候业务情况还会更复杂一点。

31.png

value 不能重复的 Map

在 Map 中 value 的值是可以重复的,Guava 可以创建一个 value 不可重复的 Map,并且 Map 和 value 可以对调。

32.png

缓存

写业务的时候肯定会使用缓存,当不想用第三方作为缓存的时候,Map 又不够强大,就可以使用 Guava 的缓存。

使用 CacheBuilder.newBuilder().build() 构建缓存,maximumSize() 方法可以设置缓存的存储数量

33.png

过期时间

expireAfterAccess() 可以设置缓存的过期时间。

34.png

加载数据

当需要访问 key1 时,如果 key1 此时没有被缓存,就会从回调函数中加载 key1 的值。值得一提的是当多个线程同时访问的时候只有一个线程会执行回调函数。

35.png

Guava 有许许多多的工具类,这里只列出了小小的部分,可以在官网例子中查看到各种用法。

总结

通过 Apache Commons 和 Guava 两个第三方的开源工具库,可以让减少循环、ifelse 的代码。写出的代码更有健壮性并且可以在新人面前装一波。

相关文章
|
5月前
|
存储 安全 Java
面试官没想到一个ArrayList,我都能跟他扯半小时
面试官:List集合都知道哪些对象?作为四大集合之一的List,在业务开发中我们比较常见的是以下 3 种:ArrayList、Vector、LinkedList,业务开发我们接触最多就是容器类库了,容器类库可以说是面向对象语言最重要的类库。大家看看在工作里你比较熟悉的是哪个?这篇文章南哥打算专注于List集合,后面四大集合之Map、Queue、Set后续再来填坑,比心心♥。
136 2
面试官没想到一个ArrayList,我都能跟他扯半小时
|
6月前
|
XML 安全 Java
一篇文章讲明白JAVA常用的工具类
一篇文章讲明白JAVA常用的工具类
73 0
|
7月前
|
监控 Java 测试技术
面试准备不充分,被Java守护线程干懵了,面试官主打一个东西没用但你得会
面试准备不充分,被Java守护线程干懵了,面试官主打一个东西没用但你得会
64 1
|
7月前
|
存储 Java 索引
Java实现点名器
Java实现点名器
71 0
|
小程序 Java
Java 8 排序的 10 个姿势,太秀了吧!同事直呼看不懂。。
Java 8 排序的 10 个姿势,太秀了吧!同事直呼看不懂。。
219 0
Java 8 排序的 10 个姿势,太秀了吧!同事直呼看不懂。。
|
JavaScript Dubbo 小程序
求你别自己瞎写工具类了,Spring自带的这些他不香麽?
求你别自己瞎写工具类了,Spring自带的这些他不香麽?
求你别自己瞎写工具类了,Spring自带的这些他不香麽?
|
存储 缓存 安全
2-JDK源码对你最有触动的是哪一段#工具类
2-JDK源码对你最有触动的是哪一段#工具类
165 0
2-JDK源码对你最有触动的是哪一段#工具类
|
JSON Java API
工具类用的好,下班下的早(上)
大家好,我是指北君。 我的好朋友小 B 又又又被上司踢了一 jio,这次是因为写的代码太烂了。有些代码是可以用第三方库类快速实现的。 下面一起来看看可以节省 90% 的加班时间的第三方开源库吧。
工具类用的好,下班下的早(上)
|
Java Go C#
面试官没想到,一个 Java 线程生命周期,我可以扯半小时
面试官:你不是精通 Java 并发吗?从基础的 Java 线程生命周期开始讲讲吧。 好的,面试官。吧啦啦啦... 如果要说 Java 线程的生命周期的话,那我觉得就要先说说操作系统的线程生命周期 因为 JVM 是跑在操作系统上面的嘛,所以是绕不过去的,而且可以说, Java 语言中的线程本质上就是操作系统的线程
面试官没想到,一个 Java 线程生命周期,我可以扯半小时