早上上课
笔记:
Exception 构造函数需要有一个Trowable参数. 抛异常的时候要改变异常类型参数应加上原来的异常.
不想处理 的异常 可以使用RuntimeException.
尽量不要修改参数
集合的遍历 使用foreach 不能增减.
增减 使用 Iterator iter = lines.iterator();
while (iter.hasNext())
{ iter.remove(); }
正则表达式:
//p
{Blank}
: 匹配空格和TAB
//p
{Digit}
: 0~9 的数字
matches() fide() 都返回bool值 区别: find 只要能够有 matches() 完全满足正则表达式.
group(0):取出某个Pattern通过compile 保存的全部变量
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:执行比较操作直至发现非零的结果,在那之后的比较输入将被忽略。写错地方了 ??? 这明明是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
是一个 内部 静态 final 不赞成使用! 的类 ... 很好还弃用?
里边重写了toString方法 相比原来的方法多了
{ , }
这.... 为了好看???
原来是为了输出ValueHolder ,
privatestaticfinalclass ValueHolder {Stringname;Objectvalue; ValueHolder next; }
看起来有点像map...