20172332 2017-2018-2 《程序設計與數據結構》第九周學習總結

20172332 2017-2018-2 《程序設計與數據結構》第九周學習總結

教材學習內容總結

  • 1.異常處理
    • 異常拋出的問題
    • 處理異常的方法
  • 2.未捕獲的異常。
  • 3.try-catch語句。
    • 沒有異常,將繼續執行try語句後的語句塊,全部catch子句後的語句。
    • 有異常,則控制馬上轉移到相應的catch子句處理異常。
  • 4.finally子句。
    • 一條try-catch語句能夠有一個可選的finally子句,用於定義一段不管是否有異常發生都將執行的代碼。
    • 若是有finally子句,則必須跟在全部的catch子句後面。
    • try語句塊能夠沒有catch子句,但仍然可使用finally子句。
    • finally語句與return語句的關係:
      • ①若是finally語句中沒有return語句,先執行finally語句中的代碼,而後在執行try語句塊或catch語句塊中的return語句;
      • ②若finally語句中有return語句,則finally語句中的return語句覆蓋其餘語句塊中的語句,最後返回的是finally中的return語句。
  • 5.異常的傳遞。(就與傳遞性同樣,舉個例子:程序一存在異常,程序二調用程序一,程序二就會存在與程序一相同的異常。)
  • 6.異常類層次結構。(許多類型的異常類都由Exception類派生,但定義各類異常的子類卻分散定義在其餘幾個包中,繼承關係能夠跨越包邊界。)
  • 7.自定義異常。(說白了就是本身寫代碼,定義一種異常)
  • 8.可檢測異常與不可檢測異常。
    • 可檢測異常必須由方法捕獲,或者必須在可能拋出或傳遞異常方法的throws子句中列出來。
    • throws子句用在方法頭。throw子句用在方法中。
    • java中惟一的不可檢測異常是RuntimeException類的對象或該類的後代類對象。
  • 9.I/O異常(其中還有老師上課講的把數據寫入文本,和從文本中讀取數據內容)
    • 三種標準I/O流(in、out、err)
    • 可檢測的IOExceptions異常
  • 10.遞歸思想(一個調用本身的方法)
  • 11.無窮遞歸(相似於無限循環)
  • 12.數學中的遞歸運算(階乘和求和)。
  • 13.遞歸與迭代的比較:
    • 全部的問題均可以用循環迭代的方法求解,但某些狀況下循環迭代會很複雜,遞歸方法能夠寫出更簡潔而精良的程序。
  • 14.直接遞歸和簡介遞歸。
    • 方法調用本身的遞歸——直接遞歸
    • 方法調用其餘方法,最終致使再次調用本身——間接遞歸。
  • 15.遞歸的應用:
    • ①迷宮旅行。
    • ②漢諾塔問題。

教材學習中的問題和解決過程(其實如今老師開始先講而後在讓咱們學的模式以後,教材上的問題是愈發的少了= =,不知道寫什麼)

  • 問題1:這種在字符串中的索引值和長度是怎麼算的html

  • 問題1解決方案:索引值和長度都不算入字符串內。(寫個小程序驗證了一下)java


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

  • 問題1:git


  • 問題1解決方案:StackOverflowError是因爲當前線程的棧滿了 ,也就是函數調用層級過多致使。改成編程

  • 問題2:pp11.2中爲何字符串的索引值要輸20,按理說,字符串第一個索引值爲0,因此第20個字符的索引值應是19。小程序

  • 問題2解決方案:emmmm,這是我想錯了,輸出第20個字符之後的,應該從21開始算起,因此索引值應爲20。數據結構

  • 問題3:pp12.1中函數


  • 問題3解決方案:索引值越界了,由於個人字符串變了,索引值也跟着變,就會出問題。應該變成字符串不變,索引值變。學習

代碼託管

很奇怪個人代碼量變少了!不過已經上5000了,就不統計了吧!讓代碼量就定格在那一瞬間!.net

上週考試錯題總結

1.A Java program can handle an exception in several different ways. Which of the following is not a way that a Java program could handle an exception?

  • A . ignore the exception
  • B . handle the exception where it arose using try and catch statements
  • C . propagate the exception to another method where it can be handled
  • D . throw the exception to a pre-defined Exception class to be handled
  • E . all of the above are ways that a Java program could handle an exception
  • 答案:D ;我選的:E
  • 分析:異常不會被拋出異常類。
  • 單詞:1.handle:處理。2.exception:異常。3.exception:傳送。

2.An exception can produce a "call stack trace" which lists

  • A . the active methods in the order that they were invoked
  • B . the active methods in the opposite order that they were invoked
  • C . the values of all instance data of the object where the exception was raised
  • D . the values of all instance data of the object where the exception was raised and all local variables and parameters of the method where the exception was raised
  • E . the name of the exception thrown
  • 答案:B ;我選的:D
  • 分析:棧是最早放的最後出來,因此順序是相反的。
  • 單詞:1.invoke:調用。2.parameters:參數。

3.Character streams manage

  • A . byte-sized data
  • B . binary data
  • C . Unicode characters
  • D . ASCII characters
  • E . compressed data
  • 答案:C ;我選的:B
  • 分析:字符流用於管理16位的Unicode字符
  • 單詞:1.Character:字符。2.compressed:壓縮。

4.PrintWriter is a better output stream class that PrintStream because PrintWriter

  • A . has both print and println methods and PrintStream only has print
  • B . can output both byte and character streams and PrintStream can only output byte streams
  • C . has error checking mechanisms as part of the class and PrintStream does not
  • D . will not throw checked exceptions and PrintStream will
  • E . all of the above
  • 答案:C ;我選的:B
  • 分析:PrintWriter類是一個Writer類,而PrintStream類是一個流類。主要的區別在於PrintWriter是專門爲文件而設計的,所以有錯誤檢查機制而不是PrintStream的一部分。(意思就是說PrintWriter比PrintStream好在有錯誤檢查機制)
  • 單詞:1.mechanisms:機制。

5.The following defines a new Exception called AnewException.

public Exception ANewException
    {
        public ANewException(String message)
        {
            super(message);
        }
    }
  • A . true
  • B . false
  • 答案:B ;我選的:A
  • 分析:自定義異常必須定位爲類而不是異常
  • 單詞:1.exception:異常。

點評過的同窗博客和代碼

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

  • 大部分知識老師在課上已經講了,還擴展了內容,因此學起來並不費勁。

學習進度條

代碼行數(新增/累積) 博客量(新增/累積) 學習時間(新增/累積) 重要成長
目標 5000行 30篇 400小時
第一週 182/182 1/1 10/10
第二週 458/640 1/2 15/25
第三週 469/1109 2/4 18/43 學會IDEA的使用和調試,學會jdb調試。
第四周 1536/2645 1/5 24/67
第五週 980/3625 1/6 25/92
第六週 870/4495 1/7 16/108
第七週 455/4950 2/9 22/130
第八週 1322/6272 2/11 28/158
第九周 2/13 28/186
  • 計劃學習時間:20小時線程

  • 實際學習時間:28小時

  • 改進狀況:課後的pp除了pp12.9我認爲有難度之外,別的還好,大部分時間依舊花在了四則運算的結對編程中。

參考資料

相關文章
相關標籤/搜索