20155330 2016-2017-2 《Java程序設計》第五周學習總結


20155330 2016-2017-2 《Java程序設計》第五周學習總結

教材學習內容總結

學習目標

  1. 理解異常架構
  2. 掌握try...catch...finally處理異常的方法
  3. 會用throw,throws
  4. 理解Collection和Map架構
  5. 會用常見的數據結構和算法
  6. 了解Lambada和泛型

第八章 章節主要內容

小結

  • Throwwable定義了取錯誤信息、堆棧追蹤(Stack Trace)等方法,它有兩個子類:java.lang.Error與java.lang.Exception。
  • catch括號中列出的異常不得有繼承關系,否則會發生編譯錯誤。
  • 如果父類異常對象在子類異常對象前被捕捉,則catch子類異常對象將永遠不會被執行。
  • 在catch區塊進行完部分錯誤處理之后,可以使用throw將異常再拋出。
  • 使用throw重拋異常時,異常的追蹤堆棧起點,仍是異常的發生根源,而不是重拋異常的地方。
  • JDK7的嘗試關閉資源語法可套用的對象,必須操作java.lang.AutoCloseable接口。

第九章 章節主要內容

小結

  • Java中判斷對象是否重復時,須同時操作調用hashCode()與equals()方法。
  • 如果對象有操作Queue,並打算以隊列方式使用,且隊列長度受限,應使用offer()、poll()與peak()等方法。
  • 在Java的規范中,跟順序有關的行為,通常對象本身是Comparable或另行指定Comparator對象告知如何排序。

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

  • 問題1:除了InputMismatchException錯誤外,Java中常見的錯誤類型還有哪些?
  • 解決方案:
    1. Exception 各種異常的根類

      如果你不知道將發生的異常集體屬於哪,而可以肯定種這個地方會出現異常時,可以把異常類型定義為Exception。

    2. ArithmeticException 算數運算錯誤異常

      這個異常是在算數運算時經常遇到的,常見的情況是除數為0時拋出的異常。

    3. ArrayIndexOfOutBoundsException 數組下標越界

      編程時要記住Java數組下標是從0開始的,數組下標最大值為數組長度減1,如arr[10],最后一個數組元素是arr[9],如果寫成arr[10]就會出現ArrayIndexOfOutBoundsException異常。

    4. NullPointException 空指針異常

      這個異常是針對調用未經初始化或未定義的對象拋出的異常。

    5. ClassNotFoundException 不能加載所需的類

      在java文件編譯后,可能是由於需要把.class文件移到了其他的文件夾,此時引用這個.class文件要注意修改其路徑,否則會拋出ClassNotFoundException異常。

    6. InputMismatchException 輸入的數據類型與所需類型不匹配異常

      比如你需要int類型,但是通過輸入框得到的是String類型,就會拋出InputMismatchException異常。

    7. IllegalArgumentException 方法接受非法參數

      這個是傳入方法中的參數類型不正確,如方法plus(int a,int b),調用時寫成a.plus(1,a)就會出現IllegalArgumentException異常。

    8. NumberFormatException 字符串轉換成數字異常

      在數據類型強制轉換時出現的異常,字符串“123”轉換成數字123不會出現異常,但是字符串“1@23”轉換成int類型就會拋出ClassCastException異常。

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

  • 問題1:課本中的Students代碼在編譯時出錯。
  • 解決方案:經檢查和搜索發現是由於System.out.println(set)中的set關鍵字設置錯誤,括號中的關鍵字應為students
  • 問題2:在編譯課本代碼SimpleLinkedList時出現無法編譯運行的錯誤
  • 解決方案:結合課本知識以及網上搜索,得出的結論是由於findElemOf函數的返回類型是Object,所以該程序的last節點的調用應該為last.o而非last.elem。

代碼托管

  • 代碼提交過程截圖:

  • 代碼量截圖:

上周考試錯題總結

  • 錯題1:14. CH06 判斷:抽象類的子類可以是抽象類也可以不是。(OK)
  • 理解情況:Java中的抽象類可以含有非抽象方法,繼承自抽象類的子類對於父類中所有的非抽象方法,覆蓋不覆蓋都行,但是所有抽象方法必須要覆蓋,如果不覆蓋,那么:這個子類必須也是抽象類,被聲明為abstract。
  • 錯題2:20. CH06 判斷:final可以用在類,方法,變量前。(OK)
  • 理解情況:final的用法:
    1. 修飾變量,為常量,值不可變;
    2. 修飾對象,值可變,引用不變;
    3. 修飾方法,方法不可重寫;
    4. 修飾類,無子類,不可以被繼承,更不可能被重寫。

結對及互評

搭檔的博客中提到了一些我在學習過程中沒有注意到的問題,解決的方案也讓人易懂,值得我借鑒學習。

評分標准(滿分10分)

  1. 從0分加到10分為止

  2. 正確使用Markdown語法(加1分):

    • 不使用Markdown不加分
    • 有語法錯誤的不加分(鏈接打不開,表格不對,列表不正確...)
    • 排版混亂的不加分
  3. 模板中的要素齊全(加1分)

    • 缺少“教材學習中的問題和解決過程”的不加分
    • 缺少“代碼調試中的問題和解決過程”的不加分
    • 代碼托管不能打開的不加分
    • 缺少“結對及互評”的不能打開的不加分
    • 缺少“上周考試錯題總結”的不能加分
    • 缺少“進度條”的不能加分
    • 缺少“參考資料”的不能加分
  4. 教材學習中的問題和解決過程, 一個問題加1分

  5. 代碼調試中的問題和解決過程, 一個問題加1分

  6. 本周有效代碼超過300分行的(加2分)

    • 一周提交次數少於20次的不加分
  7. 其他加分:

    • 周五前發博客的加1分
    • 感想,體會不假大空的加1分
    • 排版精美的加一分
    • 進度條中記錄學習時間與改進情況的加1分
    • 有動手寫新代碼的加1分
    • 課后選擇題有驗證的加1分
    • 代碼Commit Message規范的加1分
    • 錯題學習深入的加1分
  8. 扣分:

    • 有抄襲的扣至0分
    • 代碼作弊的扣至0分

點評模板:

  • 基於評分標准,我給本博客打分:9(0-10)。得分情況如下:
  1. 正確使用Markdown語法(加1分);
  2. 模板中的要素齊全(加1分);
  3. 教材學習中的問題和解決過程, 加1分;
  4. 代碼調試中的問題和解決過程, 加2分;
  5. 本周有效代碼超過300分行的(加2分);
  6. 其他加分,加2分:
    • 排版精美的加1分;
    • 代碼Commit Message規范的加1分。

點評過的同學博客和代碼

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

這周的學習任務依然很繁重。經過五周的學習,發現課本中有不少漏洞,特別是示例代碼常常會出錯,這也考驗了我們解決問題的能力。在學習過程中,查詢API是個很重要的方法,但是現在還不能熟練的運用,多數時間還是靠直接上網搜索的方式來解決問題。
另外,從這周開始的結對學習給我的幫助也很大。因為每個人的學習方法不同,所以博客中體現的風格也不一,更重要的是,在學習過程中遇到的問題不同,在閱讀他人的博客時,可以發現自己疏漏的問題,並加以學習。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 18篇 300小時
第一周 15/15 1/1 15/15
第二周 159/174 1/2 20/35
第三周 414/588 1/3 18/53 了解了封裝、對象
第四周 461/1049 1/4 18/71
第五周 786/1835 1/5 18/89
  • 計划學習時間:16小時

  • 實際學習時間:18小時

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM