20155117王震宇 2006-2007-2 《Java程序设计》第5周学习总结
生活随笔
收集整理的這篇文章主要介紹了
20155117王震宇 2006-2007-2 《Java程序设计》第5周学习总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
教材學習內容總結
- try & catch
- java中的錯誤會被打包成對象,可以嘗試(try)捕捉(catch)代表錯誤的對象后做一些處理。如果發生錯誤,會跳到catch的區塊并執行。
- 異常結構處理
- 正則表達式
- 在看這部分內容的時候,看到了規則表示式一詞。要不是還有英文Regular Expression注釋根本記不起這就是正則表達式。沒想到這么古老的直翻詞語還能在新版的書上看到。前段時間還想起很久之前寫過相關的程序用做過濾匹配文本,這可以用作檢查代碼,匹配一下文本就好了,畢竟每個人的代碼風格還是區別挺大的;至于換行、注釋這種低級的問題隨便寫個文本過濾就沒了。但是難點是在文本搜索匹配的策略優化上,不注意的話時間復雜度高的驚人(廢話)。懶得想數據結構和剪紙的方法也就懶得寫那個小工具,如果有興趣的同學能看到這篇沒什么人看的博客有了靈感的話不勝榮幸,順便能告訴我你想好的算法那就感激不盡了。
- PS:千萬不要想字符串匹配(諸如kmp)的算法,對于雷同問題的解決效率低,當然對付直接復制粘貼的懶人來說還是有用的。
- 正則表達式
- 多重捕捉
下面兩段代碼功能相同。
- throw
- 任何流程中都可以throw(不是throws),不一定要在catch區塊里。但需要在方法上使用throws(不是throw)聲明。
- assert
- assert 語法:
- 斷言
- 使用時注意斷言客戶端調用方法前,已經準備好某些前置條件(通常在private方法之中)
- 斷言客戶端調用方法后,具有方法承諾的結果。
- 斷言對象某個時間點下的狀態。
- 使用斷言取代批注。
- 斷言程序流程中絕對不會執行到的程序代碼部分。
- checkGreaterThanZero() 是一種前置條件檢查,如果程序上線后就不再需要這種檢查的話,可以將之以 assert取代,并在開發階段使用 -ea 選項,而程序上線后取消該選項
- 使用斷言的時機:一定不能有 default 的狀況,也可以使用 assert 來取代
- 使用Collection收集對象
- 收集對象的行為,像是新增對象的 add()方法、移除對象的remove()方法等,都是定義在 java.util.Collection中
教材學習中的問題和解決過程
操作comparable
按照教材的指示,我出現了和教材一樣的錯誤。
發現所謂的comparable就是C語言中qsort()函數需要自己寫的comp()比較原則函數。
類比qsort()比較原則的編寫經驗,寫出了這里排序的comparable
代碼調試中的問題和解決過程
問題一:習慣用-1代表彈出標志,結果沒注意正則表達式規范導致不能正常終止程序。
問題二:調用toUpperCase()引發NullPointerException。
代碼托管
結對及互評
基于評分標準,我給本博客打分: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 |
參考資料
Java學習筆記(第8版)
- 《Java學習筆記(第8版)》學習指導
...
轉載于:https://www.cnblogs.com/ikari/p/6624654.html
總結
以上是生活随笔為你收集整理的20155117王震宇 2006-2007-2 《Java程序设计》第5周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: KVC、KVO实现过程
- 下一篇: 数据结构--汉诺塔--借助栈实现非递归-