Guava 是java api的增强与扩展,提供复杂的java 数据结构,使你的代码更简短精炼,具有良好的可读性。
正确引入依赖,网上好多依赖版本都是屁屁,都不可以用。
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>14.0-rc2</version>
</dependency>
可以链式编程的Map
最开始对他感兴趣是因为他可以链式编程,显得很酷,根据代码提示写起来也很块,所以,进一步了解他。
public static Map<String, String> INTERFACE_NAME = ImmutableMap.<String, String>builder()
.put("/ctat", "区县统计")
.put("/scl/stat", "区县生数据统计")
.put("/custom/stat", "区县自定表生数据统计")
.put("/fotion/answer", "入政询")
.put("/ticist", "入格")
.build()
;
不可变的Map
为什么需要不可变的集合呢?
(1)保证线程安全:在并发程序中,使用Immutable既保证线程安全性,也大大增强了并发时的效率(跟并发锁方式相比)。尤其当一个对象是值对象时,更应该考虑采用Immutable方式;
(2)被不可信的类库使用时会很安全;
(3)如果一个对象不需要支持修改操作(mutation),将会节省空间和时间的开销;经过分析,所有不可变的集合实现都比可变集合更加有效地利用内存;
(4)可以当作一个常量来对待,并且这个对象在以后也不会被改变。
将一个对象复制一份成immutable的,是一个防御性编程技术。