Guava 的学习】的更多相关文章

参考链接 Guava库学习:学习Collections(三)Sets…
Guava 已经学习的代码整理 Guava 依赖: compile group: 'com.google.guava', name: 'guava', version: '18.0' 以下是我自己在开发过程中使用到的谷歌 Guava 的一些例子,有些例子看起来确实没什么用,希望各位朋友们不吝赐教. 参考资料: 1.后悔当初的5年<Google Guava学习>专题 2.蓝学网 Guava 教程 3. 创建不可变集合 ImmutableSet<Integer> numbers = I…
之前没用过这个EventBus,然后看了一下EventBus的源码也没看明白,(-__-)b.反正大概就是弄一个优雅的方式实现了观察者模式吧.慢慢深入学习一下. 观察者模式其实就是生产者消费者的一个变种,就是一边有变化,然后有一个中介,也就是观察者去告诉消费者说:我说哥们啊,他们那边又变了,咱也跟着变吧! 然后观察者要么就是一个抽象类或者一个接口,里面有个update方法,需要每个处理的实例去实现,然后变化的那方持有这些实例,然后挨个去通知. 所以你也看到了,这个持有操作其实就是很不优雅的操作,…
这段时间用到了ehcache和memcache,memcache只用来配置在tomcat中做负载均衡过程中的session共享,然后ehcache用来存放需要的程序中缓存. Guava中的Cache和ehcache其实差不多,只不过Guava并不会对数据进行持久化落盘这种操作.那其实和Map就比较相似了,你放一下static的map好像也可以办到,只不过Guava的cache支持设置最大占用的内存,已经命中统计信息之类的东西. 这里不从怎么创建一个cache,怎么去添加删除开始学习,我们先看ca…
https://zhuanlan.zhihu.com/p/20637960 java.util jooq guavanettyminajodadubbobatchlucenceactivitiquartz groovy Spark Framework joda https://github.com/jiangxincode/cnblogs/blob/master/J2EE%E5%AD%A6%E4%B9%A0%E4%B9%8B%E8%B7%AF.md Netty lombok Fastjson h…
相信大家对Java中的Map类及其之类有大致的了解,Map类是以键值对的形式来存储元素(Key->Value),但是熟悉Map的人都知 道,Map中存储的Key是唯一的.什么意思呢?就是假如我们有两个key相同,但value不同的元素需要插入到map中去,那么先前的key对应的 value将会被后来的值替换掉.如果我们需要用Map来把相同key的值存在一起,代码看起来像下面一样: @Test public void test1(){ List<Person> personList = n…
在日常开发中,我们经常会对方法的输入参数做一些数据格式上的验证,以便保证方法能够按照正常流程执行下去.对于可预知的一些数据上的错误,我们一定要做 事前检测和判断,来避免程序流程出错,而不是完全通过错误处理来保证流程正确执行,毕竟错误处理是比较消耗资源的方式.在平常情况下我们对参数的判断都需 要自己来逐个写方法判断,代码量不少并且复用性不高,如下所示: public static void main(String[] args) { getPerson(8,"peida"); getPe…
Ordering是Guava类库提供的一个犀利强大的比较器工具,Guava的Ordering和JDK Comparator相比功能更强.它非常容易扩展,可以轻松构造复杂的comparator,然后用在容器的比较.排序等操作中. 本质上来说,Ordering 实例无非就是一个特殊的Comparator 实例.Ordering只是需要依赖于一个比较器(例如,Collections.max)的方法,并使其可作为实例方法.另外,Ordering提供了链式方法调用和加强现有的比较器. 下面我们看看Orde…
java.lang.NullPointerException,只要敢自称Java程序员,那对这个异常就再熟悉不过了.为了防止抛出这个异常,我们经常会写出这样的代码: Person person = people.find("John Smith"); if (person != null) { person.doSomething(); } 在Java世界里,解决空引用问题常见的一种办法是,使用Null Object模式.这样的话,在“没有什么”的情况下,就返回Null Object,…
我们HashMap会有一个rehash的过程,为什么呢?因为java内建的散列码被限制为32位,而且没有分离散列算法和所作用的数据,所以替代算法比较难做.我们使用HashMap的时候它自身有一个rehash的过程,所以我们无需操心.但是如果我们自己离开hashmap的内容,去使用Object.hashCode()就不有可能会比较坑爹了,碰撞处理我们自己去做并不容易.但是,我们可以使用Guava的hash功能. Guava的Hash package底下的内容比较多: 它提供了不同的Hash算的实现…