20145319 第五週學習總結

20145319 《Java程序設計》第五週學習總結

教材學習內容總結

本週學習了教材的第八章、第九章,在通過前幾周的學習以後,咱們大體瞭解了java中的基礎語法,函數構造調用,以及當以項目爲基礎設計代碼時咱們該如何使用繼承和接口,對java已有初步瞭解,所以這兩章咱們要進一步學習的是如何處理程序中的異常情況。html

1. 異常處理語法java

  1. 定義:java中全部錯誤都會被打包成一個對象,因此能夠嘗試(try)捕捉(catch)錯誤對象,並作出相應處理。
  2. try:多和catch搭配使用,JVM會嘗試try區塊中的程序代碼。若是發生了錯誤,即馬上跳出錯誤點,比較catch()中聲明的錯誤類型,若是吻合就執行catch區塊中的代碼
  3. catch:和try搭配使用,若是catch()聲明的錯誤類型和try區塊中的代碼錯誤類型一致,就馬上執行catch區塊中的代碼
  4. Multi-catch(多重捕捉):在實際中,常常會碰見數個類型的catch區塊在作一樣的事情,並且catch區塊內容都是重複的,這樣不只不方便撰寫也不方便維護,這時候能夠寫成以下模式express

    try{ ; }catch(IOException|InterruptedException|ClassCastException){ ; }
  5. throws:操做對象拋出受檢對象,但目前環境信息卻不足以處理異常,則沒法使用try、catch處理,此時就要用throws聲明此方法會拋出的異常類型或其父類型,不然會編譯失敗。(在同時使用繼承時,若是父類某個方法聲明throws某些異常,子類從新定義該方法時不能夠throws父類方法中沒聲明的其餘異常。throws父類方法聲明的異常的父類數組

  6. throw:在catch區塊操做完部分錯誤處理以後,可使用throw再將異常拋出網絡

  7. assert:分爲assert booleanexpression;和assert booleanexpression:detailexpression;若是booleanexpression爲true則什麼都不發生若爲false,則會發生java.lang.AssertionError

2. 異常繼承架構數據結構

  1. 設計錯誤對象都繼承自java.lang.Throwable類,Throwable定義了取得錯誤信息,堆棧追蹤(Stack Trace)等方法,它有兩個子類:java.lang.Error和java.lang.Exception

3. 異常和資源管理架構

  1. finally:在調用文檔時,當文檔讀取完或者不使用時就應該close()關閉文檔,可是若是程序在Scanner.close()前發生了異常,該語句就會因中斷而不被執行,finally能夠和try、catch搭配,若寫有fianlly區塊,則finally區塊就必定要被執行,將Scanner.close();寫在fianlly區塊中就能夠避免上述狀況。
  2. Try-With-Resources: 要自動關閉資源的對象撰寫在try()中,若是無需catch處理異常,能夠不用寫,也不用寫finally區塊

4. Collection架構函數

  1. 如同數據結構同樣,在java.util.Collection中有增、刪、遍歷對象 add: remove: clear: size: iterator:
  2. set:在收集過程當中如有相同對象,想要重複收集,可使用set接口的操做對象

5.具備索引的List學習

核心方法 add(int index, E element)、 remove(int index)set(int index, E element)spa

  1. ArrayList:至關於數據結構的線性表,

  2. LinkedList:至關於數據結構鏈式表

 

6. 鍵值對應的Map

  • 如網絡搜索,根據關鍵字能夠找到對應數據,程序設計中的java.util.Map接口的操做對象用來簡歷鍵值對應數據
  • 經常使用的Map操做類有HashMap、TreeMap與Properties三種。
  • 若是想取得Map中全部的鍵,能夠調用Map的keySet()返回Set對象。因爲鍵是不重複的,因此使用Set操做返回或者使用values()返回Collection對象

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

  • 在編寫書上課後習題的代碼時常常碰見args[0],開始並不清楚args[0]表明什麼,只記得在最開始學java時,要打開main方法就必定要寫public static void main(String[] args),後面才知道args是一個字符串數組的變量名,不是關鍵字,是arguments的縮寫,只是一個默認名。String[ ] args表示給主方法傳一個字符串數組
  • 如何指定命令行自變量?
  • 其實剛開始看的時候有一堆不懂的,如今也並不能說就真的懂了,可是一些零零碎碎的小問題的解決過程就不一一贅述了

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

 代碼:

 

原本書上是問在沒有指定命令行自變量的狀況下執行程序會發生什麼?可是因爲本身並不熟悉命令行自變量,也不知怎麼指定命令行自變量,只能猜想是catch()中的錯誤類型不恰當而致使了編譯的失敗,因此對程序作了一些修改

修改:

改爲如上程序以後,沒有指定命令行自變量,程序編譯經過,運行後輸出「輸入數字」

代碼託管截圖:

 

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

  • 前幾周的學習其實都有點操之過急,正好這幾章也有與數據結構相關,能夠和數據結構的課程結合起來,接下來的假期正好能夠休息一下也能夠回顧一下以前學過的和最近所學的數據結構,感受這樣效果會比較好。

學習進度條

 

 

代碼行數(新增/累積)

博客量(新增/累積)

學習時間(新增/累積)

重要成長

目標

3500行

28篇

300小時

 

第五週

200/1200

1/5

20/105

 

第六週

 

 

 

 

第七週

 

 

 

 

第八週

 

 

 

 

參考資料

- ...

相關文章
相關標籤/搜索