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: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 |
|
參考資料