Guava學習(二)

早上上課

筆記:

Exception 構造函數需要有一個Trowable參數. ??拋異常的時候要改變異常類型參數應加上原來的異常.

不想處理 的異常 可以使用RuntimeException.

盡量不要修改參數

集合的遍歷 使用foreach 不能增減.

增減 使用 Iterator iter = lines.iterator();

while (iter.hasNext())

{ iter.remove(); }

正則表達式:

//p

{Blank}

:?匹配空格和TAB

//p

{Digit}

: ?0~9 的數字

matches() fide() 都返回bool值 區(qū)別: ? find 只要能夠有 matches() 完全滿足正則表達式.

group(0):取出某個Pattern通過compile 保存的全部變量

BigDecimal 精確小數: 構造的時候盡量使用字符串

1 public BigDecimal add(BigDecimal value); //加法

2 public BigDecimal subtract(BigDecimal value); //減法

3 public BigDecimal multiply(BigDecimal value); //乘法

4 public BigDecimal divide(BigDecimal value); ? //除法

設置精度::

decinal(10, 5) 10:保留幾位數5:小數點后有幾位

SetScale(int n,進位和退位的策略)會返回一個新的對象

進位和退位策略:

RoundingMode.ROUND_HALF_UP ? ? ? ? //四舍五入

RoundingMode.ROUND_HALF_DOWN ?//向下取整

RoundingMode.ROUND_UP ? ? ? ? ? ? ? ? ? ? //向上取整

RoundingMode.ROUND_DOWN ? ? ? ? ? ? //舍去末位

FastDataFormat

1:intcompare_and_swap(int* reg,intoldval,intnewval)

2:{

3:ATOMIC();

4:intold_reg_val = *reg;

5:if(old_reg_val == oldval)

6:*reg = newval;

7:END_ATOMIC();

8:returnold_reg_val;

9:}

Objects

equal方法Objects.equal("a","a");// returnstrueObjects.equal(null,"a");// returnsfalseObjects.equal("a",null);// returnsfalseObjects.equal(null,null);// returnstrue

HashCode中使用的hash函數和編程珠璣中的hash函數非常像, 共同點是 乘31 ?即位移5位再減一.高效!

//用跟元素個數最接近的質數作為散列表的大小#define NHASH 29989#define MULT 31unsigned in hash(char*p) {? ? unsignedinth = 0;for(; *p; p++)? ? ? ? h = MULT *h + *p;returnh % NHASH;}

publicstaticinthashCode(Objecta[]) {if(a ==null)return0;intresult = 1;for(Objectelement : a)? ? ? ? ? ? result = 31 * result + (element ==null? 0 : element.hashCode());returnresult;? ? }

ComparisonChain:執(zhí)行比較操作直至發(fā)現非零的結果,在那之后的比較輸入將被忽略。寫錯地方了 ??? 這明明是ComparisonChain類!

因為compareTo方法中會用到拉,

publicintcompareTo(Foo that) {returnComparisonChain.start()? ? ? ? ? ? .compare(this.aString, that.aString)? ? ? ? ? ? .compare(this.anInt, that.anInt)? ? ? ? ? ? .compare(this.anEnum, that.anEnum, Ordering.natural().nullsLast())? ? ? ? ? ? .result();}

ToStringHelper:.....我在源碼中看到了什么!

@Deprecatedpublicstaticfinalclass ToStringHelper

是一個 ?內部 靜態(tài) ?final ? 不贊成使用! 的類 ... ?很好還棄用?

里邊重寫了toString方法 ?相比原來的方法多了

{? ,? }

這.... 為了好看???

原來是為了輸出ValueHolder ,

privatestaticfinalclass ValueHolder {Stringname;Objectvalue;? ? ? ValueHolder next;? ? }

看起來有點像map...

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容