20155205 2016-2017-2 《Java程序設計》第8周學習總結
教材學習內容總結
第十四章
- NIO使用頻道來銜接數據節點,能夠設定緩衝區容量,在緩衝區中對感興趣的數據區塊進行標記,提供clear()、rewind()、flip()、compact()等高級操做。
- FileInputStream、FileOutputStream都有個getChannel()方法能夠分別取得FileChannel實例。
- 能夠經過Channels上其它newXXX()靜態方法,取得InputStream、OutputStream、Reader、Writer實例
第十五章
- java.util.logging包提供了日誌功能相關類與接口。
- 調用getlogger()時,必須指定Logger實例所屬名稱空間,名稱空間以「.」做爲層級區分,名稱空間層級相同的Logger,其父Logger組態相同。
一般在哪一個類中取得的Logger,名稱空間就會命名爲哪一個類全名。
- 使用日誌的起點是Logger類,Logger類的構造函數標示爲protected,要取得Logger實例,必須使用Logger的靜態方法getLogger()。
- 表明同一組信息但不一樣地區的各個資源包會共享相同的基礎名稱,使用ResourceBundle的getBundle()時指定的名稱,就是在指定基礎名稱。
- 使用ResourceBundle時,如何根據基礎名稱取得對應的信息文檔:
(1)使用指定的Locale對象取得信息文檔
(2)使用Locale.getDefault()取得的對象取得信息文檔
(3)使用基礎名稱取得信息文檔
- 可使用Date來取得完整日期時間,使用toString()取得日期文字描述,使用DateFormat格式化日期。
- 規則表示式主要用於字符、字符串格式比較。
- 規則表達式是規則表達式,在Java中要將規則表達式撰寫""在中是另外一回事。
教材學習中的問題和解決過程
- 問題1:p475的HandlerDemo爲何沒有任何顯示?
- 問題1解決方案:由於這個程序只會在目前Logger增長FileHanler,由於父Logger默認層級爲LEVEL.INFO,信息不會顯示在控制檯,而會儲存在用戶根目錄的config.log中。
- 問題2:婁老師學習指導中的問題,如何進行中英文轉換?
- 問題2解決方案:參考《java.util.ResourceBundle使用詳解》
注意: .properties文檔必須放置在CLASSPATH的路徑設置下。html


代碼調試中的問題和解決過程
- 問題1:針對p474的LoggerDemo,同時更改Logger和Handler的Level結果會有什麼不一樣?
- 問題1解決方案:當Level爲FINE時,

當Level爲CONFIG時,java

總結: 當Level愈來愈高時,顯示的信息會愈來愈少。git
- 問題2:針對以上問題,把Logger/Handler設置成不同的Level會有什麼不一樣呢?
- 問題2解決方案:
第(1)種狀況:程序員


第(2)種狀況:緩存


總結: 當Logger/Handler的Level不一樣時,以最高的爲主。安全


上週考試錯題總結
- 錯題1:下面哪些Linux 命令能夠ASCII碼和16進制單字節方法輸出Hello.java的內容?
A .od -b -tx1 Hello.javaapp
B .od -tcx1 Hello.java函數
C .od -tc -tx1 Hello.java性能
D .od -tbx1 Hello.java學習
解析 :選B、C。
- 錯題2:JDK8中的Lambda表達式有如下好處:
A .消除重複性
B .提升性能
C .提升安全性
D .改善可讀性
解析:選A、D。
- 錯題3:JDK8 中新時間API中,用於度量時間的類有()
A .Instant
B .Duration
C .Period
D .LocalDateTime
解析:選B、C。
- 錯題4:An object can be thought of as a blueprint for a set of classes(對象被認爲是類集合的藍圖).
A .true
B .false
解析:選B。
- 錯題5:Given the following, which answers can correctly fill in the blank? (Choose all that apply.)針對下面的代碼,()中應填入哪一個選項?
LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.now();
ZoneId zoneId = ZoneId.systemDefault();
ZonedDateTime zonedDateTime = ZonedDateTime.of(dateTime, zoneId);
long epochSeconds = 0;
Instant instant = ( );
A .Instant.now()
B .Instant.ofEpochSecond(epochSeconds)
C .date.toInstant()
D .dateTime.toInstant()
E .time.toInstant()
F .zonedDateTime.toInstant()
解析:選F。
- 錯題6:
What is the output of the following code?(下面代碼的運行結果是?)
LocalDate date = LocalDate.of(2018, Month.APRIL, 30);
date.plusDays(2);
date.plusYears(3);
System.out.println(date.getYear() + " "
- date.getMonth() + " "+ date.getDayOfMonth());
A .2018 APRIL 2
B .2018 APRIL 30
C .2018 MAY 2
D .2021 APRIL 2
E .2021 APRIL 30
F .2021 MAY 2
G .A runtime exception is thrown.
解析:選B。注意:最後是date.getDayOfMonth()。
結對及互評
評分標準
- 正確使用Markdown語法(加1分):
- 不使用Markdown不加分
- 有語法錯誤的不加分(連接打不開,表格不對,列表不正確...)
- 排版混亂的不加分
- 模板中的要素齊全(加1分)
- 缺乏「教材學習中的問題和解決過程」的不加分
- 缺乏「代碼調試中的問題和解決過程」的不加分
- 代碼託管不能打開的不加分
- 缺乏「結對及互評」的不能打開的不加分
- 缺乏「上週考試錯題總結」的不能加分
- 缺乏「進度條」的不能加分
- 缺乏「參考資料」的不能加分
教材學習中的問題和解決過程, 一個問題加1分
代碼調試中的問題和解決過程, 一個問題加1分
- 本週有效代碼超過300分行的(加2分)
- 其餘加分:
- 週五前發博客的加1分
- 感想,體會不假大空的加1分
- 排版精美的加一分
- 進度條中記錄學習時間與改進狀況的加1分
- 有動手寫新代碼的加1分
- 課後選擇題有驗證的加1分
- 代碼Commit Message規範的加1分
- 錯題學習深刻的加1分
- 點評認真,能指出博客和代碼中的問題的加1分
- 結對學習狀況真實可信的加1分
- 扣分:
- 有抄襲的扣至0分
- 代碼做弊的扣至0分
- 遲交做業的扣至0分
點評模板:
點評過的同窗博客和代碼
其餘(感悟、思考等,可選)
日誌對於程序員來講是一個很是重要的應用,咱們應該認真學習認真思考。這周也針對婁老師的要求對本身以前的學習進行了反思。
學習進度條
目標 |
5000行 |
30篇 |
400小時 |
|
第一週 |
16/16 |
1/1 |
12/12 |
|
第二週 |
124/140 |
1/2 |
19/31 |
|
第三週 |
501/641 |
1/3 |
26/57 |
|
第四周 |
664/1305 |
1/4 |
27/84 |
|
第五週 |
886/2191 |
1/5 |
28/112 |
不光是照着書上的代碼打了,本身也按着本身的想法打 |
第六週 |
502/2693 |
1/6 |
30/142 |
增長了看視頻的兩個小時 |
第七週 |
549/3242 |
2/8 |
25/167 |
|
第八週 |
391/3633 |
1/9 |
20/187 |
|
嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進本身的計劃能力。這個工做學習中很重要,也頗有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。
參考:軟件工程軟件的估計爲何這麼難,軟件工程 估計方法
參考資料