20155304 2016-2017-2 《Java程序設計》第八週學習總結
教材學習內容總結
NIO
- NIO使用頻道來銜接數據節點,在處理數據時,NIO可讓你設定緩衝區容量,在緩衝區中對感興趣的數據區塊進行標記。對於區塊標記,提供了clear()、rewind()、flip()、compact()等高級操做。
- Channels類定義了靜態方法newChannel()。
Buffer的直接子類們都有一個allocate()靜態方法,可讓你指定Buffer容量,Buffer容量大小可以使用capacity()方法取得,實際可讀取或寫入的數據界限索引值能夠由limit()方法得知或設定,下一個可讀取數據的位置索引值,可使用position()方法得知或設定。html
日誌
- java.util.logging包提供了日誌功能相關類與接口。
- 使用日誌的起點是Logger類,Logger實例的建立有許多要處理的要素,其構造函數標示爲protected,取得Logger的實例,必須使用Logger的靜態方法getLogger()。
- 調用getLogger()時,必須指定Logger實例所屬名稱空間,名稱空間以「."做爲層級區分,名稱空間層級相同的Logger,其父組態相同。
- 調用getname()就能夠取得類全名。
- Level.OFF會用於關閉全部信息輸出,Level.ALL會用於容許全部信息輸出,使用removeHandler()移除Handler。
- 一個Logger能夠擁有多個Handler,可經過Logger的addHandler()新增Handler實例。
- Handler可經過setLevel()設定信息,一個信息要通過Logger與Handler的過濾後才能夠輸出。
- 負責日誌輸出的是Handler實例。
- MemoryHandler不會格式化日誌信息,信息會暫存於內存緩衝區,直到超過緩存區大小,纔將信息輸出至指定的目標Handler。
- StreamHandler可自行指定信息輸出時使用的OutputStream實例,它與子類都會使用指定的Formatter格式化信息。
- ConsoleHandler的日誌信息會顯示在控制檯。
- FileHandle文檔位置與名稱可使用模式字符串指定。
若是要自定義Formatter,能夠繼承Formatter後操做抽象方法format(),這個方法會傳入LogRecord,儲存全部日誌信息。java
國際化基礎
- 對於往後可能變更的文字信息,能夠考慮將信息移至程序以外,方法是使用ResourceBundle來作信息綁定。
- .properties文檔必須放置在CLASSPATH的路徑設定下,文檔中撰寫的是鍵/值配對,以後在程序中可使用鍵來取得對於的值。
- 國際化的三個重要概念是地區信息、資源包與基礎名稱。
- 地區信息可由一個語言編碼(兩個小寫字母表明)與可選的地區編碼(兩個大寫字母表示)來指定。
表明同一組但不一樣地區的各個資源包會共享相同的基礎名稱,使用ResourceBundle的getBundle()時指定的名稱,就是在指定基礎名稱。數組
規則表達式
- 根據某個字符或字符串切割,可使用String的split()方法,它會返回切割後各子字符串組成的String數組。
- 規則表達式基本上包括兩種字符:字面意義字符與元字符。
- 字面意義字符是指按照字面意義比較的字符。
- 元字符在規則表達式中有特殊含義,則必須加上忽略符號。
- 規則表達式中,多個字符能夠分歸在一塊兒,成爲一個字符類,字符類會比較文字中是否有「任一個」字符符合字符類中某個字符。
- {n}是貪婪量詞表示法的一種,表示前面的項目出現n次。
- 在貪婪量詞表示法後加上?,將會成爲逐步量詞,又常稱爲懶惰量詞,或非貪婪量詞。
- 在貪婪量詞表示法後加上+,將會成爲獨吐量詞。
- 邊界比較用來表示文字必須符合指定的邊界條件,也就是定位點,所以這類表示式也常稱爲錨點。
- 可使用()來將規則表示式分組,除了做爲子規則表達式以外,還能夠搭配量詞使用。
- 分組回頭參考是,是在\後加上分組計數,表示參考第幾個分組的比較結果。
- 規則表達式自己可讀性差、除錯不易,可使用getDescription()取得錯誤說明,使用getIndex()取得錯誤索引,使用getPattern()取得錯誤的規則表達式,getMessage()會以多行顯示錯誤的索引、描述等綜合信息。
對數據進行管線化操做,方法之一是使用Arrays的asList()方法返回List,然後調用stream()方法取得Stream實例,另外一個方式是使用Arrays的stream()方法,它能夠指定數組後返回Stream實例。緩存
教材學習中的問題和解決過程
書 P484表格中八進制0n字符、八進制0nn字符、八進制0mnn字符以及有關十六進制的相關字符不懂其含義。app
代碼調試中的問題和解決過程
這次代碼調試中沒有出現較大問題。函數
上週考試錯題總結
- 錯題1:
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。
- 錯題2:
下面哪些Linux 命令能夠ASCII碼和16進制單字節方法輸出Hello.java的內容?
A .od -b -tx1 Hello.java
B .od -tcx1 Hello.java
C .od -tc -tx1 Hello.java
D .od -tbx1 Hello.java
答案:B、C。
3.錯題3:
下面哪些類的對象會包含「東部標準時間」的信息)
(Choose all that apply.)
A .Instant
B .LocalDate
C .LocalDateTime
D .LocalTime
E .ZonedDateTime
答案: E
結對及互評
評分標準
- 正確使用Markdown語法(加1分):
- 不使用Markdown不加分
- 有語法錯誤的不加分(連接打不開,表格不對,列表不正確...)
- 排版混亂的不加分
- 模板中的要素齊全(加1分)
- 缺乏「教材學習中的問題和解決過程」的不加分
- 缺乏「代碼調試中的問題和解決過程」的不加分
- 代碼託管不能打開的不加分
- 缺乏「結對及互評」的不能打開的不加分
- 缺乏「上週考試錯題總結」的不能加分
- 缺乏「進度條」的不能加分
- 缺乏「參考資料」的不能加分
教材學習中的問題和解決過程, 一個問題加1分
代碼調試中的問題和解決過程, 一個問題加1分
- 本週有效代碼超過300分行的(加2分)
- 其餘加分:
- 週五前發博客的加1分
- 感想,體會不假大空的加1分
- 排版精美的加一分
- 進度條中記錄學習時間與改進狀況的加1分
- 有動手寫新代碼的加1分
- 課後選擇題有驗證的加1分
- 代碼Commit Message規範的加1分
- 錯題學習深刻的加1分
- 點評認真,能指出博客和代碼中的問題的加1分
- 結對學習狀況真實可信的加1分
- 扣分:
- 有抄襲的扣至0分
- 代碼做弊的扣至0分
- 遲交做業的扣至0分
點評模板:
點評過的同窗博客和代碼
其餘(感悟、思考等,可選)
經過這星期的學習,學會了使用日誌API以及運用規則表達式,這星期學的許多內容都須要記憶,以後的學習中也要常返回來看看這些知識點。
學習進度條
目標 |
5000行 |
30篇 |
400小時 |
|
第一週 |
10/10 |
1/1 |
10/20 |
簡單瞭解了jdk,認識了Java語言學習的複雜性 |
第二週 |
70/100 |
1/1 |
18/25 |
|
第三週 |
150/200 |
1/1 |
14/20 |
|
第四周 |
200/300 |
1/1 |
15/20 |
|
第五週 |
200/300 |
1/1 |
15/20 |
|
第六週 |
350/500 |
1/1 |
15/20 |
|
第七週 |
500/700 |
2/2 |
15/20 |
|
第8周 |
500/700 |
1/1 |
15/20 |
|
參考資料