20155304 2016-2017-2 《Java程序設計》第八週學習總結

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. 錯題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。

  1. 錯題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

結對及互評

評分標準

  1. 正確使用Markdown語法(加1分):
    • 不使用Markdown不加分
    • 有語法錯誤的不加分(連接打不開,表格不對,列表不正確...)
    • 排版混亂的不加分
  2. 模板中的要素齊全(加1分)
    • 缺乏「教材學習中的問題和解決過程」的不加分
    • 缺乏「代碼調試中的問題和解決過程」的不加分
    • 代碼託管不能打開的不加分
    • 缺乏「結對及互評」的不能打開的不加分
    • 缺乏「上週考試錯題總結」的不能加分
    • 缺乏「進度條」的不能加分
    • 缺乏「參考資料」的不能加分
  3. 教材學習中的問題和解決過程, 一個問題加1分

  4. 代碼調試中的問題和解決過程, 一個問題加1分

  5. 本週有效代碼超過300分行的(加2分)
    • 一週提交次數少於20次的不加分
  6. 其餘加分:
    • 週五前發博客的加1分
    • 感想,體會不假大空的加1分
    • 排版精美的加一分
    • 進度條中記錄學習時間與改進狀況的加1分
    • 有動手寫新代碼的加1分
    • 課後選擇題有驗證的加1分
    • 代碼Commit Message規範的加1分
    • 錯題學習深刻的加1分
    • 點評認真,能指出博客和代碼中的問題的加1分
    • 結對學習狀況真實可信的加1分
  7. 扣分:
    • 有抄襲的扣至0分
    • 代碼做弊的扣至0分
    • 遲交做業的扣至0分

點評模板:

  • 博客中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 代碼中值得學習的或問題:
    • xxx
    • xxx
    • ...
  • 基於評分標準,我給本博客打分:XX分。得分狀況以下:xxx

  • 參考示例

點評過的同窗博客和代碼

其餘(感悟、思考等,可選)

經過這星期的學習,學會了使用日誌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
  • 計劃學習時間:20小時

  • 實際學習時間:15小時

參考資料

相關文章
相關標籤/搜索