Guava和Apache Common提供了非常强大的类库工具。涉及面非常广泛。日常工作中如果遇到需要一些基础能力,要优先想想这些类库。
Apache Common
IO相关-读写文件
Collection of I/O utilities.
读写csv文件
加密解密
压缩,解压缩
读取配置文件 -Configuration
XML-to-Java-object mapping
发送邮件
文件上传
File upload capability for your servlets and web applications.
数学计算相关/统计相关
计算一系列数字的平均值、方差和其他汇总统计数据
使用线性回归将一条线拟合到一组数据点
将曲线拟合到一组数据点
寻找通过点集合的平滑曲线(插值)
使用最小二乘法将参数模型拟合到一组测量值
求解包含实值函数的方程(即寻根)
线性方程组的求解
求解常微分方程
最小化多维函数
生成比使用JDK可能有更多限制(例如分布、范围)的随机数
生成与输入文件中的数据“相似”的随机样本和/或数据集
进行统计显著性检验
各种数学函数,如阶乘、二项式系数和“特殊函数”(如gamma、beta函数)
Guava
https://github.com/google/guava/wiki
如何优雅地统计方法耗时-stopWatch
http://www.ibloger.net/article/3304.html
Stopwatch watch = Stopwatch.createStarted();
xxx (实际代码)
watch.stop();
sout(watch.elapsed(TimeUnit.MILLISECONDS))
如何创建内存缓存
常用 Guava 和 Caffeine,两者对比 https://zhuanlan.zhihu.com/p/345175951 推荐Caffeine
https://github.com/ben-manes/caffeine
https://github.com/google/guava/wiki/CachesExplained
最佳实践
在访问时load db 到内存,并隔一段时间自动刷新
LoadingCache<Key, Graph> graphs = Caffeine.newBuilder()
.maximumSize(10000)
.refreshAfterWrite(Duration.ofMinutes(1)) // 隔一段时间自动刷新
.build(key -> createExpensiveGraph(key));
hutool - java基础操作这里都会有util,想用基础util优先想到这里
ReflectUtil
文件相关
excel相关
加解密
DataUtil
…..