20155234 2016-2017-2 《Java程序设计》第5周学习总结
生活随笔
收集整理的這篇文章主要介紹了
20155234 2016-2017-2 《Java程序设计》第5周学习总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
20155234 2016-2017-2 《Java程序設計》第5周學習總結
教材學習內容總結
- Java中所有錯誤都會被打包為對象,運用try、catch,可以在錯誤發生時顯示友好的錯誤信息。
- 運用try、catch,還可以在捕捉處理錯誤之后,嘗試恢復程序正常執行流程。
- 如果父類異常對象在子類異常前被捕捉,則catch子類異常對象的區塊將永遠不會被執行。
- catch括號中列出的異常不得有繼承關系,否則會發生編譯錯誤。
- 在catch區塊進行完部分錯誤處理之后,可以使用throw(注意不是throws)將異常再拋出。
- 如果拋出的是受檢異常,表示你認為客戶端有能力且應該處理異常,此時必須在方法上使用throws聲明;如果拋出的異常是非受檢異常,表示你認為客戶端調用方法的時機錯了,拋出異常是要求客戶端修正這個漏洞再來調用方法,此時也就不用throws聲明。
- 在多重方法調用下,異常發生點可能是在某個方法之中,若想得知異常發生的根源,以及多重方法調用下的堆棧傳播,可以利用異常對象自動收集的堆棧追蹤來取得相關信息,例如調用異常對象的printStackTrace()。
- 收集對象的行為,像是新增對象的add()方法、移除對象的remove()方法等,都是定義在java.util.Collection中。既然可以收集對象,也要能逐一取得對象,這就是java.lang.Iterable定義的行為,它定義了iterator()方法返回java.lang.Iterable操作對象,可以讓你逐一取得收集的對象。
- 收集對象的共同行為定義在Collection中,然而收集對象會有不同的需求。如果希望收集時記錄每個對象的索引順序,并可依索引取回對象,這樣的行為定義在java.util.List接口中。如果希望收集的對象不重復,具有集合的行為,則由java.util.Set定義。如 果希望收集對象時以隊列方式,收集的對象加入至尾端,取得對象時從前端,則可以使用java.util.Queue。如果希望Queue的兩端進行加入、移除等操作,則可以使用java.util.Deque。
- 數組在內存中會是連續的線性空間,根據索引隨機存取時速度快,如果操作上有這類需求時,像是排序,就可使用ArrayList,可得到較好的速度表現。
- 若收集的對象經常會有變動索引的情況,也許考慮鏈接方式操作的List會比較好,像是隨時會有客戶端登錄或注銷的客戶端List,使用LinkedList會有比較好的效率。
- Queue繼承自Collection,所以也具有Collection的add()、remove()、element()等方法,然而Queue定義了自己的offer()、poll()與peek()等方法,最主要的差別之一在于:add()、remove()、element()等方法操作失敗時會拋出異常,而offer()、poll()與peek()等方法操作失敗時會返回特定值。
- 如果對象有操作Queue,并打算以隊列方式使用,且隊列長度受限,通常建議使用offer()、poll()與peek()等方法。
- java.util.ArrayDeque操作了Deque接口,可以使用ArrayDeque來操作容量有限的堆棧。
- 相對于匿名類語法來說,Lambda表達式的語法省略了接口類型與方法名稱,->左邊是參數列,而右邊是方法本體。
- Collections的sort()方法要求被排序的對象必須操作java.lang.Comparable接口,這個接口有個compareTo()方法必須返回大于0、等于0或小于0的數。
若要根據某個鍵來取得對應的值,可以事先利用java.util.Map接口的操作對象來建立鍵值對應數據,之后若要取得值,只要用對應的鍵就可以迅速取得。常用的Map操作類為java.util.HashMap與java.util.TreeMap,其繼承自抽象類java.util.AbstractMap。
教材學習中的問題和解決過程
書上p233頁的代碼范例中的“!input.matches("\d")”是什么意思?
通過看書上對代碼的解析,得到如下解釋:String 的 matches() 方法中設定了"\d",這是規則表示式,表示檢查字符串中的字符是不是數字,若是則 matches() 會返回true。代碼托管
上周考試錯題總結
- 面向對象中,設計經驗可以用(設計模式)表達。
- 使用JDB進行調試時查看源代碼的命令是(list)。
- 實現一個類中的equals()方法時,一定要同時實現(hashCode())方法
- 父類中有個public void fight(),子類中有個public void fight( Weapon w),這兩個方法的關系是Override.(X)
使用JDB進行調試時查看源代碼的命令是(list)
結對及互評
點評過的同學博客和代碼
- 20155226基于評分標準,我給本博客打分:(8)。得分情況如下:
動手寫新代碼的加1分
其他(感悟、思考等,可選)
當看書看到一處不懂時接著往后看,發現知識聯系的很緊密,所以當遇到一處讓自己很難懂的地方可以先放一放往后看,說不定答案就在那等著你。這兩章都是陌生的東西,要想弄懂各種具體事例,前幾章的基礎很重要。
學習進度條
| 目標 | 5000行 | 30篇 |
| 第一周 | 3/3 | 1/1 |
| 第二周 | 105/108 | 1/2 |
| 第三周 | 205/313 | 1/3 |
| 第四周 | 402/710 | 1/4 |
| 第五周 | 327/1037 | 1/5 |
參考資料
Java學習筆記(第8版)
《Java學習筆記(第8版)》學習指導
轉載于:https://www.cnblogs.com/zxm20/p/6616848.html
總結
以上是生活随笔為你收集整理的20155234 2016-2017-2 《Java程序设计》第5周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Asp.net MVC在Razor中输出
- 下一篇: VisualVM远程监控Java