20155117王震宇 2006-2007-2 《Java程序設計》第5周學習總結

教材學習內容總結

  • try & catch
    • java中的錯誤會被打包成對象,能夠嘗試(try)捕捉(catch)表明錯誤的對象後作一些處理。若是發生錯誤,會跳到catch的區塊並執行。
  • 異常結構處理
    • 正則表達式
      • 在看這部份內容的時候,看到了規則表示式一詞。要不是還有英文Regular Expression註釋根本記不起這就是正則表達式。沒想到這麼古老的直翻詞語還能在新版的書上看到。前段時間還想起好久以前寫過相關的程序用作過濾匹配文本,這能夠用做檢查代碼,匹配一下文本就行了,畢竟每一個人的代碼風格仍是區別挺大的;至於換行、註釋這種低級的問題隨便寫個文本過濾就沒了。可是難點是在文本搜索匹配的策略優化上,不注意的話時間複雜度高的驚人(廢話)。懶得想數據結構和剪紙的方法也就懶得寫那個小工具,若是有興趣的同窗能看到這篇沒什麼人看的博客有了靈感的話不勝榮幸,順便能告訴我你想好的算法那就感激涕零了。
      • PS:千萬不要想字符串匹配(諸如kmp)的算法,對於雷同問題的解決效率低,固然對付直接複製粘貼的懶人來講仍是有用的。
  • 多重捕捉
    下面兩段代碼功能相同。
try{
    System.in.read();
    }catch (IOException ex){
        ex.printStackTrace();
    }catch (Exception ex){
        ex.printStackTrace();
    }
try{
    System.in.read();
    }catch (IOException |Exception ex){
        ex.printStackTrace();
    }
  • throw
    • 任何流程中均可以throw(不是throws),不必定要在catch區塊裏。但須要在方法上使用throws(不是throw)聲明。
  • assert
  • assert 語法:
assert boolean_expression;
assert boolean_expression : detail_expression;
•boolean_expression 若爲 true,則什麼事都不會發生,若是爲 false,則會發生 java.lang.AssertionError,此時若採起的是第二個語法,則會將 detail_expression 的結果顯示出來,若是當中是個對象,則調用 toString() 顯示文字描述結果
  • 斷言
    • 使用時注意斷言客戶端調用方法前,已經準備好某些前置條件(一般在private方法之中)
    • 斷言客戶端調用方法後,具備方法承諾的結果。
    • 斷言對象某個時間點下的狀態。
    • 使用斷言取代批註。
    • 斷言程序流程中絕對不會執行到的程序代碼部分。
    • checkGreaterThanZero() 是一種前置條件檢查,若是程序上線後就再也不須要這種檢查的話,能夠將之以 assert取代,並在開發階段使用 -ea 選項,而程序上線後取消該選項
    • 使用斷言的時機:必定不能有 default 的情況,也可使用 assert 來取代
  • 使用Collection收集對象
    - 收集對象的行爲,像是新增對象的 add()方法、移除對象的remove()方法等,都是定義在 java.util.Collection中
- 既然能夠收集對象,也要能逐一取得對象,這就是java.lang.Iterable定義的行爲,它定義了iterator()方法返回 java.lang.Iterable操做對象,可讓你逐一取得收集的對象

教材學習中的問題和解決過程

操做comparable
按照教材的指示,我出現了和教材同樣的錯誤。

發現所謂的comparable就是C語言中qsort()函數須要本身寫的comp()比較原則函數。

類比qsort()比較原則的編寫經驗,寫出了這裏排序的comparablehtml

代碼調試中的問題和解決過程

問題一:習慣用-1表明彈出標誌,結果沒注意正則表達式規範致使不能正常終止程序。
java


問題二:調用toUpperCase()引起NullPointerException。git

代碼託管

結對及互評

基於評分標準,我給本博客打分:10正則表達式

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 0/0 2/2 20/20
第二週 251/251 1/5 18/38
第三週 651/902 1/6 10/48
第四周 300/1400 1/7 10/58
第四周 696/2196 1/8 10/68

參考資料

相關文章
相關標籤/搜索