20145105 《Java程序设计》第5周学习总结
20145105 《Java程序設計》第5周學習總結
教材學習內容總結
第八章 異常處理
一、語法與繼承架構
(一)使用try、catch
執行流程
- 嘗試執行try區塊中程序代碼
- 如果出現錯誤,執行流程跳離錯誤發生點
- 比較catch區塊中聲明的類型,如果符合被拋出的錯誤對象類型,就執行catch區塊的代碼。 范例Average
- 運行結果
- 運行結果
意義:針對錯誤做一些處理,可以恢復正常流程,進行日志記錄等。
范例Average3- 運行結果
- 運行結果
(二)異常繼承架構
Exception與其子類實例代表程序設計本身的錯誤。
范例Average4- 運行結果
多重捕捉中,catch括號中列出的異常不能有繼承關系,否則會發生編譯錯誤。
(三)要抓還是要拋
throw:方法中跑出Checked Exception,方法聲明中必須有throws。
范例FileUtil
(四)貼心還是造成麻煩
(五)認識堆棧追蹤
直接調用異常對象的printStackTrace(),是常看堆棧追蹤的最簡單方法。
范例StackTraceDemo- 運行結果
使用throw重拋異常時,異常的追蹤堆棧起點,仍是異常的發生根源,不是重拋異常的地方。
范例StackTraceDemo2
- 運行結果
使用fillInStackTrace()方法,可以重新裝填異常堆棧,將起點設為重拋異常的地方,并返回Throwable對象。
范例StackTraceDemo3- 運行結果
(六)關于assert
- 使用斷言的時機
二、異常與資源管理
(一)使用finally
利用finally區塊一定會被執行的特點,可以在finally區塊中調用close()方法,避免資源不被關閉。
范例FinallyDemo- 運行結果
- 運行結果
(二)自動嘗試關閉資源
JDK7之后,想要嘗試自動關閉的資源,可以撰寫在try之后的括號中。
范例FileUtile2
(三)java.lang.AutoCloseable接口
JDK7嘗試關閉資源語法可套用的對象,必須操作java.lang.AutoCloseable接口。
范例AutoClosableDemo- 運行結果
同時關閉兩個以上的資源,只需要以分號分隔,越后面的越先關閉。
范例AutoClosableDemo2- 運行結果
第九章 Collection與Map
一、使用Collection收集對象
(一)認識Collection架構
- java.util.Collection:收集對象,如:
- add():新增對象
- remove():移除對象
- java.util.Iterable:逐一取得對象,如:
- interator():返回操作對象
- java.util.List:記錄每個對象的索引順序,并可按索引取回對象。
- java,util.Set:收集對象不重復,且具有集合的行為
- java.util.queue:收集對象時以隊列的方式,收集的對象加入至尾端,取得對象時從前端
- java.util.Deque:對Queue兩端進行加入、移除等操作
(二)具有索引的List
ArrayList特性:根據索引隨機存取時速度快,需要調整索引順序時表現較差。
范例Guest- 運行結果
LinkedList特性:根據索引隨機存取對象時較慢,但有利于調整索引順序。
出錯
(三)內容不重復的Set
Arrays.asList()方法返回List,而List是一種Collection,所以可傳給HashSet接受Collection實例的構造函數。
范例WordCount- 運行結果
Java中許多要判斷對象是否重復時,會同時調用hashCode()與equals()。
出錯
(四)支持隊列操作的Queue
offer()、poll()、peek()等方法操作失敗會返回固定值。
范例RequestQueue- 運行結果
Deque是Queue的子接口,定義了對隊列的操作。
范例Stack- 運行結果
(五)使用泛型
使用泛型可以讓程序更簡潔
范例ArrayList
(六)簡介Lambda表達式
Lambda表達式的語法省略了接口類型與方法名稱,“->”左邊是參數列,右邊是方法本體。
范例RequesQueue2- 運行結果
- 運行結果
(七)Interable和Iterator
增強式for循環可用在數組上,也可用在操作Iterable接口的對象上。
范例ForEach- 運行結果
- 運行結果
(八)Comparable與Comoarator
- 與順序有關的行為,要么對象本身是Comparable,要么另行指定Comparator對象告知如何排序。
- 返回值(小于0,等于0或大于0)用來調換排列順序。
二、鍵值對應的Map
(一)常用Map操作類
(二)訪問Map鍵值
教材學習中的問題和解決過程
解決:學習到8.1.2時看到書中片段
try{做一些事...}catch(IOException | InterruptedException | ClassCastException e) {e.printStackTrace();}
代碼調試中的問題和解決過程
編寫P253的范例后,始終提示錯誤,檢查了好幾遍就是覺得寫的沒錯,過兩天再查的時候發現try括號中new ResourceSome()缺少了(),ResourceOther other少了other,十分詫異自己當時看了那么多遍,怎么就沒看出來這么大的缺漏。。。
編寫P269范例Students的后,最后的set始終顯示錯誤,后來編寫到Students2時發現該處應該為students。
編寫270范例Students2時出現很多問題。。。尚未解決
其他(感悟、思考等,可選)
聽了老師的話,看了學姐辛苦碼的心得,我也對自己的博客內容和版式做出一些改進,自己還是希望變得優秀,并且也確實在一點一點進步著的。
學習進度條
| 目標 | 3000行 | 15篇 | 300小時 | |
| 第一周 | 70/70 | 2/2 | 14/14 | |
| 第二周 | 150/220 | 1/3 | 18/32 | |
| 第三周 | 400/620 | 1/4 | 35/67 | |
| 第四周 | 850/1470 | 1/5 | 30/97 | |
| 第五周 | 560/2030 | 1/6 | 34/131 |
參考資料
- Java學習筆記(第8版)
- 《Java學習筆記(第8版)》學習指導
- ...
轉載于:https://www.cnblogs.com/schwarizard/p/5350995.html
總結
以上是生活随笔為你收集整理的20145105 《Java程序设计》第5周学习总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 光线传感器的调用
- 下一篇: 摆摊卖蜂蜜怎么让顾客品尝?