異常html
在 Java 中,全部的異常都有一個共同的祖先 Throwable。Throwable 指定代碼中可用異常傳播機制經過 Java 應用程序傳輸的任何問題的共性。java
Java的異常(包括Exception和Error)分爲可查的異常(編譯器要求必須處置的異常)和不可查的異常(編譯器不要求強制處置的異常)。git
在 Java 應用程序中,異常處理機制爲:拋出異常,捕捉異常。也就是說,一個方法所能捕捉的異常,必定是Java代碼在某處所拋出的異常。簡單地說,異常老是先被拋出,後被捕捉的。數組
在Java中,異常經過try-catch語句捕獲。其通常語法形式爲:網絡
try { // 可能會發生異常的程序代碼 } catch (Type1 id1){ // 捕獲並處置try拋出的異常類型Type1 }
匹配的原則是:若是拋出的異常對象屬於catch子句的異常類,或者屬於該異常類的子類,則認爲生成的異常對象與catch塊捕獲的異常類型相匹配。數據結構
Exception(異常):是程序自己能夠處理的異常。
Exception 類有一個重要的子類 RuntimeException。RuntimeException 類及其子類表示「JVM 經常使用操做」引起的錯誤。例如,若試圖使用空值對象引用、除數爲零或數組越界,則分別引起運行時異常(NullPointerException、ArithmeticException)和 ArrayIndexOutOfBoundException。學習
Error(錯誤):是程序沒法處理的錯誤,表示運行應用程序中較嚴重問題。大多數錯誤與代碼編寫者執行的操做無關,而表示代碼運行時 JVM(Java 虛擬機)出現的問題。例如,Java虛擬機運行錯誤(Virtual MachineError),當 JVM 再也不有繼續執行操做所需的內存資源時,將出現 OutOfMemoryError。這些異常發生時,Java虛擬機(JVM)通常會選擇線程終止。ui
簡單來講,異常和錯誤的區別:異常能被程序自己能夠處理,錯誤是沒法處理。編碼
try { // 可能會發生異常的程序代碼 } catch (Type1 id1) { // 捕獲並處理try拋出的異常類型Type1 } finally { // 不管是否發生異常,都將執行的語句塊 }
可是finally也有不被執行的狀況,在如下4種特殊狀況下,finally塊不會被執行:
1)在finally語句塊中發生了異常。
2)在前面的代碼中用了System.exit()退出程序。
3)程序所在的線程死亡。
4)關閉CPU。
問題3解決方案:
throws: 用在方法聲明後面,跟的是異常類名
能夠跟多個異常類名,用逗號隔開
表示拋出異常,由該方法的調用者來處理
throws表示出現異常的一種可能性,並不必定會發生這些異常
throw:
用在方法體內,跟的是異常對象名
只能拋出一個異常對象名 表示拋出異常,由方法體內的語句處理 throw則是拋出了異常,執行throw則必定拋出了某種異常
問題5解決方案:簡單來睡,迭代與遞歸其實均可以解決同一個問題,重點在於哪一個方法更方便。下面用一個簡單的例子來講一下迭代與遞歸的區別
電影故事例證:
迭代——《明日邊緣》
遞歸——《盜夢空間》
遞歸:
】】】
】】】】】】
...
】】】】】】】】】
】】】】】】】】】】】】
】】】】】】】】】
...
】】】】】】
】】】
迭代:
】】】
】】】
】】】
】】】
...
】】】
】
問題1:上週遇到的sorting沒法編譯的問題
問題2:要如何解決識別done中止的問題,我以前作的嘗試不是死循環就是有沒有done都能獲得同樣的結果
問題2解決方案:str.length() -4 , str.length() ).equals("DONE")
利用這個識別是否有DONE的部分
(statistics.sh腳本的運行結果截圖)
Polymorphism is achieved by
A . overloading
B . overriding
C . embedding
D . abstraction
E . encapsulation
overloading重載 overriding重寫 實現多態要重寫裏面的方法
Which statement is completely true?
A . Java upcasts automatically, but you must explicitly downcast
B . Java downcasts automatically, but you must explicitly upcast
C . Java expects the user to explicitly upcast and downcast
D . Java will both upcast and downcast automatically
E . The rules for upcasting and downcasting depend upon whether classes are declared public, protected, or private
Java會自動向上轉換,但您必須顯式地向下轉換
Can a program exhibit polymorphism if it only implements early binding?
A . Yes, because one form of polymorphism is overloading
B . No, because without late binding polymorphism cannot be supported
C . Yes, because so long as the programs uses inheritance and/or interfaces it supports polymorphism
D . Yes, because early binding has nothing to do with polymorphism
E . none of the above
早期綁定不能稱爲多態,重載只是爲具備不一樣參數列表的方法提供了替代方法。
The fact that the System.out.println( ) method is able to handle such a wide variety of objects, and print them correctly, is an example of the polymorphic nature of the println( ) method.
A . true
B . false
println()在本質上是高度多態的。
A class reference can refer to any object of any class that descends from the class.
A . true
B . false
這是使用類名來聲明引用變量
寫在評論裏
🙂
代碼行數(新增/累積) | 博客量(新增/累積) | 學習時間(新增/累積) | 重要成長 | |
---|---|---|---|---|
目標 | 5000行 | 30篇 | 400小時 | |
第一週 | 200/200 | 1/2 | 20/20 | |
第二週 | 329/500 | 2/3 | 18/38 | |
第三週 | 619/1000 | 2/5 | 22/60 | |
第四周 | 817/1734 | 2/7 | 38/98 | |
第五週 | 674/2408 | 1/9 | 30/128 | |
第六週 | 1136/2870 | 2/10 | 30/158 | |
第七週 | 1000/3791 | 1/11 | 32/190 | |
第八週 | 2662/6453 | 2/13 | 48/238 | |
第九周 | 782/7573 | 2/15 | 48/238 |