閱讀源碼收穫和最近發現的小知識

收穫一些以前沒怎麼用的方法
1.

    List<String> ret = new ArrayList();
    ret.add("1");                           
    ret.add("2");                           
    ret.add("3");                           
    ret.add("4");                           
    ret.add("5");                           
    String[] s = new String[10];            
    s[9] = "time";                          
    String[] strings = ret.toArray(s);      
    System.out.println(s.equals(strings));  
    //一般來說需要傳個數組對象才能實現轉換List轉換爲數組   
    當list長度大於數組長度的時候,是深拷貝
    當list長度小於數組長度,是淺拷貝

2.

String s = "我是";
s.getBytes("utf8")
s.getBytes("UTF8")
s.getBytes("utf-8")
s.getBytes("UTF-8")
其實都是一樣的指的utf-8
效果沒有差異,建議統一

3.

if(logger.isInfoEnabled){
    logger.info("")
}
當日志級別高於info的時候,其實可以避免字符串的拼接。多了一個if,而if的代價僅爲輸出日誌的百分之1

4.

一直沒注意的,a%(2的n次方)   其實就等於   a&(2的n次方-1)
對於
int m = n*2^x   
n < 2^x  
那麼  m|n = m + n 

二進制操作的

5.

循環調用靜態方法比實例化對象後循環調用非靜態方法快了很多很多
以爲是有特殊的結果緩存類似的,讓量變化之後
靜態方法依然遠勝於非靜態方法
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章