Guava优美代码-11-Cache
Guava缓存Cache缓存(Cache)是我们在开发中为了提高系统的性能,把经常的访问业务数据在第一次访问时没有就先处理结果然后放到缓存中,第二次就不用在对相同的业务数据再重新处理一遍,这样就大大提高了系统的性能。缓存被广泛地引用在各个企业的业务系统中,Guava为我们提供了一个非常好的缓存架构,下面介绍Guava Cache的具体使用方法。 缓存分类缓存分好几种: 本地缓存。 数据库缓存。
Guava缓存Cache缓存(Cache)是我们在开发中为了提高系统的性能,把经常的访问业务数据在第一次访问时没有就先处理结果然后放到缓存中,第二次就不用在对相同的业务数据再重新处理一遍,这样就大大提高了系统的性能。缓存被广泛地引用在各个企业的业务系统中,Guava为我们提供了一个非常好的缓存架构,下面介绍Guava Cache的具体使用方法。 缓存分类缓存分好几种: 本地缓存。 数据库缓存。
集合工具类 Collection Utils ClassGuava的魅力在处理集合的方面可以说是展现的淋漓尽致,相比JDK的实现,使用Guava可以使我们的代码变得更加“优美”,尤其是在集合接口的声明或者是创建上面。下面我们通过一些简单的例子来领略一下Guava的魅力! 静态工厂方法在JDK 7之前,构造新的泛型集合时要讨厌地重复声明泛型: 1List<TypeThatsTooLongFor
多值映射MultiMapMap大概是我们在生产过程中使用最多的容器之一了。Map是一种典型的K-V(键-值)结构。即可以通过一个Key(键)查找到对应的V(值)。正是由于此,JDK规定了Map中不能有重复的键,因为重复会导致无法查询准确的值。但是我们也要注意到这么一个需求:经常地,我们会需要一个键对应多个值,如果用JDK表示,就是这种结构Map<String, List<String&
多值集合MultiSet使用过JDK的同学都知道,在Java中集合Set是不允许重复的,也就是说在同一个集合中不允许出现两个相同的元素。但是如果我们需要计算一个集合中一个元素出现的次数,采用JDK的方式去完成的话会非常的麻烦,但是Guava为我们解决了这个问题—-MultiSet。 实现一个Word Count程序我们需要统计一段文字中各个单词出现的次数,下面给出JDK和Guava两种实现方式。
不可变集合Immutable Collections为什么要使用不可变集合不可变对象有很多优点,包括: 当对象被不可信的库调用时,不可变形式是安全的; 不可变对象被多个线程调用时,不存在竞态条件问题 不可变集合不需要考虑变化,因此可以节省时间和空间。所有不可变的集合都比它们的可变形式有更好的内存利用率(比如分析和测试细节); 不可变对象因为固定不变,所以可以作为常量来安全使用。 创建对象的不可
不知道你是否遇到下面这种经历,当你面对多台机器需要维护的时候,可能会觉得不知所措,一台机器,两台机器这都还好说,但是如果需要管理的是一个集群(超过50台)呢?一台机器一台机器去管理是不太现实的,那样的话累死了。下面分享一个简单的脚本有助于解决这种管理急群中多台服务器的情况。 前提是你首先得设置主机和各台从机之间的SSH免密码登录。如果不知道的可以去看一下我的另一篇博客设置SSH免登录。补充说明的是
简化异常处理的ThrowablesGuava提供了一个异常处理工具类, 可以简单地捕获和重新抛出多个异常。这个工具就是Throwables。借助Throwables工具类,我们可以很轻松地完成以下一些事情: 获取异常链 获取最底层的异常 过滤异常,只抛出我们感兴趣的异常 把受检查的异常转换为运行时异常 下面直接给出上述几种用例场景的示例代码分析。 获取异常链(getCausalChain)12
优雅的Guava排序器在开发中经常会对一些数据进行排序或者搜索操作,以前基本上都是先实现Comparator比较器,然后根据这个比较器去比较具体对象之间的顺序。这个过程一直都为开发者所诟病,现在Guava为我们带来了全新的一种比较的方式,那就是Ordering排序器! 排序器[Ordering]是Guava链式风格比较器[Comparator]的实现,它可以用来为构建复杂的比较器,以完成集合排序的