Jack47
我思故我在
Google Java编程库Guava介绍
本系列想介绍下Java下开源的优秀编程库--Guava[ˈgwɑːvə]。它包含了Google在Java项目中使用一些核心库,包含集合(Collections),缓存(Caching),并发编程库(Concurrency),常用注解(Common annotations),String操作,I/O操作方面的众多非常实用的函数。Guava需要JDK1.6及以上版本。
使用这些开源的类库,帮助非常大,能够节约你的宝贵时间,减少你出错的可能,让你把时间都集中在处理自己独特的业务逻辑上。同时可以多看看这些优秀的开源库,向他们学习,能够帮助你设计更好的API,让你的代码更易读,更整洁,更简单,因为这些API自身就是很好的例子。
Guava库是按照Joshua Bloch的 Effective Java: 2nd Edition来写的,不可变性(不可变的集合,CharMatcher
,Joiner
, Splitter
等),构造者模式(ImmutableList.builder()
, Joiner
, Ordering
等),范型等随处可见,使用工厂而不是构造函数(Maps.newHashMap()
),钟情于组合而不是继承(ForwardXXX这类集合)。
如果你是使用Maven来作Java/Android项目管理,可以在pom.xml中dependencies
下添加对Guava的依赖,然后在IntelliJ IDEA重新导入(Reimport)这个项目,让Maven下载Guava对应版本的jar包,就可以使用Guava提供的众多API了。如果在IntelliJ IDEA中跳转到了Guava的代码中,可以使用右上角提示的"Download Source"来下载对应的源码。
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>19.0</version>
</dependency>
本系列目录如下,目前只写了1,2后续会逐渐补上:
- 集合(Collection)相关的API
- 实用的工具类
- 缓存(Cacheing) API
- 并发编程(Concurrency)
- 推荐文章
- T-shirt
- JS Set
- Connectivity
- Games
- Self-examination
- vsftp搭配iptables的配置
- 等待网络服务是否可用
- 使用ICMP协议Ping网络主机
- 将本地端口转发到远程主机
- 儿童天赋脚本
- python网络编程socket之多线程
- python网络编程socket之多进程
- python剑指网络
- python剑指网络篇一
- 【leetcode】Next Permutation
- 【leetcode】Divide Two Integers
- 【leetcode】GenerateParentheses
- 6 预处理 const sizeof
- 利用构造函数求1到n的和 46
- 16 操作系统
- 【leetcode】Letter Combinations of a Phone Number
- 【leetcode】_3sum_closest
- 【leetcode】_3Sum
- 【LeetCode】Longest Common Prefix
- 入门:PHP:hello world!
- 入门:HTML:hello world!
- 入门:HTML表单与Java 后台交互(复选框提交)
- codeforces 712B. Memory and Trident
- codeforces 712A. Memory and Crow
- hdu 5878 I Count Two Three (2016 ACM/ICPC Asia Regional Qingdao Online 1001)