1.CaseFormat#
CaseFormat是guava中用于字符串格式转换的工具,有以下几种类型
UPPER_CAMEL,比如 UpperCamel
UPPER_UNDERSCORE,比如 UPPER_UNDERSCORE
LOWER_CAMEL,比如 lowerCamel
LOWER_HYPHEN,比如 lower-hyphen
LOWER_UNDERSCORE,比如 lower_underscore
可以使用to进行转换
1 | // 从大写驼峰转小写驼峰 |
也可以使用converter进行转换
1 | Converter<String, String> converter = CaseFormat.UPPER_CAMEL.converterTo(CaseFormat.LOWER_CAMEL); |
2.guava cache#
guava cache是一种非常优秀本地缓存解决方案,提供了基于容量,时间和引用的缓存回收方式
guava cache作为本地缓存,对于redis,redis将会受到网卡等原因,所以缓存的方案可以是DB+redis+local cache
使用的场景:
1 | 1.愿意消耗一些内存空间来提升速度 |
参考:https://www.jianshu.com/p/38bd5f1cf2f2
其他的本地缓存方案还有:caffeine
3.Preconditions#
可以使用Preconditions来优雅的进行参数的校验,比如
1 | Preconditions.checkNotNull(jedisPoolConfig, "Redis pool config should not be Null"); |
4.Hash#
可以使用guava来对进行哈希
下面的例子使用了md5,还有其他的哈希方法,比如murmur3(es使用的路由哈希算法),sha256,crc32等
1 | HashCode hash = Hashing.md5().hashString("123456"); // 等同于Hashing.md5().hashString("123456", Charsets.UTF_16LE); |
分别输出
1 | ce0bfd15059b68d67688884d7a3d3e8c |
在Linux上使用md5sum,等同于使用 Hashing.md5().hashString(“123456”, StandardCharsets.UTF_8)
1 | echo -n '123456' | md5sum |
5.EventBus#
EventBus是guava提供的一种消息发布-订阅类库
6.RateLimiter#
1 | RateLimiter limiter = RateLimiter.create(1.0); // 这里的1表示每秒允许处理的量为1个 |
7.去掉字符串的空格和换行#
1 | CharMatcher.breakingWhitespace().removeFrom(str) |