20155213 2016-2017-2 《Java程序設計》第八週學習總結
教材學習內容總結
第十四章NIO與NIO2
- NIO
- NIO使用頻道來銜接數據節點,在處理數據時,NIO可讓你設定緩衝區容量,在緩衝區中對感興趣的數據區塊進行標記。對於區塊標記,提供了clear()、rewind()、flip()、compact()等高級操做。
- Buffer繼承架構
- Buffer的直接子類們都有個allocate()靜態方法,可讓你指定Buffer容量(Capacity),若是想取得Buffer內部的陣列,可使用array()方法,若是有個數組想要轉爲某個Buffer子類實例,每一個Buffer子類實例都有wrap()靜態方法能夠提供操做。
- Buffer是容器,填裝的數據不會超過它的容量,容量大小可使用capacity()方法取得,實際可讀取或寫入的數據界限(Limit)索引值能夠由limit()方法得知或設定,下一個可讀取數據的位置(Position)索引值,可使用position()方法得知或設定。
- NIO2
- NIO2文件系統API提供一組標準接口與類,應用程序開發者只要基於這些標準接口與類進行文件系統操做,底層事蹟如何進行文件系統操做,是由文件系統提供者負責。
通用API
- 日誌API簡介
- 使用日誌的起點是Logger類,要取得Logger類,必須使用Logger的靜態方法getLogger(),Logger.log()方法能夠用來輸出信息。 默認的Logger還會記錄時間、類、方法等信息,Logger是記錄信息的起點,還會通過一些過濾纔會輸出信息,輸出信息其實是由Handler負責。
- Logger有層級關係,每一個Logger處理完本身的日誌動做後,回想父Logger傳播,讓父Logger也能夠處理日誌Logger與Handler預設都會先依Level過濾信息,若是沒有作任何修改,取得的Logger實例之父Logger組態,就是Logger.GLOBAL_LOGGER_NAME名稱空間Logger實例的組態,這個實例的Level設定爲INFO,可經過Logger實例的getParent()取得父Logger實例,可經過getLevel()取得設定的Level實例。
- 在通過Logger過濾以後,還得再通過Handler的過濾,一個Logger能夠擁有多個Handler,可經過Logger的addHandler()新增Handler實例。
教材學習中的問題和解決過程
- 問題1:怎麼正確表示貪婪正則表達式
- 問題1解決方案:貪婪、非貪婪、獨佔量詞:{n}是貪婪量詞表示法的一種,表示前面的項目出現n次。在貪婪量詞表示法後加上?,將會成爲逐步量詞(懶惰量詞、非貪婪量詞)
public class SplitDemo2 {
public static void main(String[] args) {
for(String str : "Justin dog Monica doggie Irene".split("\\bdog\\b")) {
System.out.println(str.trim());
}
}
}
代碼調試中的問題和解決過程
上週考試錯題總結
- JDK8 中新時間API中,用於度量時間的類有(BC)
- A .Instant
- B .Duration
- C .Period
- D .LocalDateTime
- A ________________ diagram helps us visualize the contents of and relationships among the classes of a program(___有助於咱們查看程序中類的內容和它們之間的關係).(B)
- A .class and object(類和對象)
- B .UML(UML類圖)
- C .object-oriented(面向對象)
- D .public
- E .private
- 解析
- UML圖有助於咱們想象的內容和程序的類之間的關係。 其餘選擇不指任何類型的圖。
結對及互評
- 與155227辜彥霖結對
- 我的感受她的博客排版很好看,很值得借鑑,代碼量和提交次數都挺多,這種態度值得學習,但有點,所解決問題不夠個性化。
評分標準
- 正確使用Markdown語法(加1分):
- 不使用Markdown不加分
- 有語法錯誤的不加分(連接打不開,表格不對,列表不正確...)
- 排版混亂的不加分
- 模板中的要素齊全(加1分)
- 缺乏「教材學習中的問題和解決過程」的不加分
- 缺乏「代碼調試中的問題和解決過程」的不加分
- 代碼託管不能打開的不加分
- 缺乏「結對及互評」的不能打開的不加分
- 缺乏「上週考試錯題總結」的不能加分
- 缺乏「進度條」的不能加分
- 缺乏「參考資料」的不能加分
教材學習中的問題和解決過程, 一個問題加1分git
代碼調試中的問題和解決過程, 一個問題加1分正則表達式
- 本週有效代碼超過300分行的(加2分)
- 其餘加分:
- 週五前發博客的加1分
- 感想,體會不假大空的加1分
- 排版精美的加一分
- 進度條中記錄學習時間與改進狀況的加1分
- 有動手寫新代碼的加1分
- 課後選擇題有驗證的加1分
- 代碼Commit Message規範的加1分
- 錯題學習深刻的加1分
- 扣分:
點評過的同窗博客和代碼
點評過的同窗博客和代碼
其餘(感悟、思考等,可選)
- 前幾章大量的敲代碼工做讓同窗們的學習都留於形式,只想着完成做業而對代碼的理解少之又少,感受學好java的方法不是「敲」代碼,而是「修改」代碼,敲好代碼之後若是不理解代碼的能,能夠經過修改代碼來具體體會其真正含義。
- 進步來源於發現問題和解決問題,若是你們不去主動思考,簡單機械的完成做業,那學習便失去了意義。
學習進度條
目標 |
5000行 |
30篇 |
400小時 |
|
第一週 |
48/48 |
1/1 |
20/20 |
|
第二週 |
98/146 |
1/2 |
30/50 |
學習java的基礎語法 |
第三週 |
302/448 |
1/3 |
27/77 |
學習java對象及封裝 |
第四周 |
1032/1480 |
1/4 |
36/113 |
學習了繼承與多態的關係,以及接口的多態操做 |
第五週 |
609/2025 |
1/5 |
30/143 |
學習了異常處理和Map |
第六週 |
672/2697 |
1/6 |
30/173 |
學習了IO和線程 |
第七週 |
532/3229 |
1/7 |
27/200 |
對Lambda和Date的學習 |
第八週 |
359/3588 |
1/8 |
20/220 |
學習了NIO和通用API |
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。api
參考:軟件工程軟件的估計爲何這麼難,軟件工程 估計方法數組
計劃學習時間:35小時架構
實際學習時間:30小時學習
改進狀況:.net
有空多看看現代軟件工程課件 軟件工程師能力自我評價表)線程
參考資料