guava是java API蛋糕上的冰激凌(精華).java
源碼包的簡單說明:
com.google.common.annotations:普通註解類型。
com.google.common.base:基本工具類庫和接口。
com.google.common.cache:緩存工具包,很是簡單易用且功能強大的JVM內緩存。
com.google.common.collect:帶泛型的集合接口擴展和實現,以及工具類,這裏你會發現不少好玩的集合。
com.google.common.eventbus:發佈訂閱風格的事件總線。
com.google.common.hash: 哈希工具包。
com.google.common.io:I/O工具包。
com.google.common.math:原始算術類型和超大數的運算工具包。
com.google.common.net:網絡工具包。
com.google.common.primitives:八種原始類型和無符號類型的靜態工具包。
com.google.common.reflect:反射工具包。
com.google.common.util.concurrent:多線程工具包。緩存
如今針對每一個包的類如今進行測試。網絡
com.google.common.base:基本工具類庫和接口 多線程
Ascii:針對ASCII碼的處理,比較實用的方法有:app
toLowerCase(String param):將傳入的param的字符處理爲小寫。ide
toUpperCase(String param):將傳入的param的字符處理爲大寫。工具
truncate(CharSequence seq, int maxLength, String indicator):將seq的字符串截斷銜接上indicatori字符串,使整體字符串長度等於maxLength。若是maxLength小於indicator的長度,報錯IllegalArgumentException.若是maxLength大於seq的長度,則結果即爲seq。測試
public class AsciiOwnTest { public static void main(String[] args) { String test=Ascii.toLowerCase("ZHONG GUO!"); System.out.println(test); test=Ascii.toUpperCase("feng ge"); System.out.println(test); //test=Ascii.truncate("laoshiha", 3, "....");這個會報錯 //System.out.println(test); test=Ascii.truncate("laoshiha", 4, "...."); System.out.println(test); test=Ascii.truncate("laoshiha", 5, "...."); System.out.println(test); test=Ascii.truncate("laoshiha", 6, "...."); System.out.println(test); test=Ascii.truncate("laoshiha", 7, "...."); System.out.println(test); test=Ascii.truncate("laoshiha", 8, "...."); System.out.println(test); test=Ascii.truncate("laoshiha", 9, "...."); System.out.println(test); } }
結果以下:ui
zhong guo!
FENG GE
....
l....
la....
lao....
laoshiha
laoshiha
Joiner:用於將容器中的元素進行拼接,這個仍是比較實用。this
on(String param):按照param來作分隔符。
join(Iterator<?> part):用來拼接迭代器中的元素,返回一個String類型
append(A extend appendable,Iterator<?> parts): 在A對象後邊加拼接迭代器中的元素。
public class Test { public static void main(String[] args) { Joiner joiner = Joiner.on(";"); List<String> lists = new ArrayList<String>(); lists.add("hhaha"); lists.add("中國龍"); System.out.println(joiner.join(lists.iterator())); StringBuilder sb = new StringBuilder(); sb.append("什麼意思?"); sb =joiner.appendTo(sb, lists); System.out.println(sb.toString()); }
hhaha;中國龍
什麼意思?hhaha;中國龍
Objects:實體類
equal(,):校驗兩個對象是否相等.
public static void main(String[] args) { System.out.println(Objects.equal(1,1)); }
true
Splitter:按照某個字符分割一組數據。
on():分隔符.
split(CharSequence param):分割的數據.
public class Test { public static void main(String[] args) { Iterator<String> it = Splitter.on(",").split("wo,xiang,ni").iterator(); while(it.hasNext()){ System.out.println(it.next()); } } }
結果:
wo
xiang
ni
ComparisonChain:執行比較操做直至發現非零的結果,在那以後的比較輸入將被忽略。
class TestCompare implements Comparable<TestCompare>{ private String hehe; private int heihei; public String getHehe() { return hehe; } public void setHehe(String hehe) { this.hehe = hehe; } @Override public int compareTo(TestCompare t) { return ComparisonChain.start() .compare(this.hehe, t.hehe) .compare(this.heihei, t.heihei) .result(); } }