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

2021-08-19 16:50:28 字數 1187 閱讀 2471

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

1.

listret = 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)

當日誌級別高於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.

迴圈呼叫靜態方法比例項化物件後迴圈呼叫非靜態方法快了很多很多

以為是有特殊的結果快取類似的,讓量變化之後

靜態方法依然遠勝於非靜態方法

編譯和閱讀WRK原始碼

一 什麼是wrk wrk的全稱是 windows research kernel 它是微軟為高校作業系統課程提供的可修改和跟蹤的作業系統教學平台。它給出了windows這個成功的商業作業系統的核心大部分 可以對其進行修改 編譯,並且可以用這個核心啟動windows作業系統。可讓學生將作業系統基本原理...

Hive cli原始碼閱讀和梳理

對cli的重新認識 hive cli有兩種模式,本地模式 採用持有的driver物件來處理,遠端模式 通過連線hiveserver來實現,由此可見之前的架構圖中的描述還是模糊且帶有誤導性 支援singal的處理支援,比如對ctrl c中斷,需要兩次才完全退出互動 互動式命令處理模式 原始碼閱讀 si...

閱讀原始碼的方法

首先要有大體的概念,然後再讀功能,最後再讀細節,欣賞一些精彩的 對於一篇原始碼讀懂的大體思路 在單執行緒的情況下 搞清楚每個函式的作用,元件的作用,之後就知道了這篇原始碼的作用,輸入是什麼,輸出是什麼,作用是什麼 然後就是程式邏輯了,複雜的邏輯需要反覆,慢慢看,看的時候只需順清楚主線流程就行,一些i...