Lession 8註解和異常
1.Java註解(Annotation)
a) Override註解表示子類重寫父類對應的方法
b) Deprecated註解表示方法是不建議被使用的。
c) SuppressWarning註解表示抑制警告
2.自定義註解:當註解中的屬性名爲value時,在對其賦值時可以不指定屬性的名稱而直接協商屬性值即可;除了value以外的其他值都需要使用name=value這種賦值方式,即明確指定給誰賦值。
3.當我們使用@interface關鍵字定義一個註解時,該註解隱含地繼承了Annotation接口;如果我們定義了一個接口,並且讓該接口繼承自Annotation,那麼我們所定義的接口依然還是接口而不是註解;Annotation本身是接口而不是註解。可以與Enum類比
4.Junit: 單元測試不是爲了證明你是對的,而是證明你沒有錯
5.沒有反射那麼Java的很多框架就不存在了(No Reflection,No most of frameworks)。
6.編寫安全代碼
7.Junit的執行流程
a) 首先獲得待測試類所對應的Class對象
b) 然後通過該Class對象獲得當前類中所有public方法對應的Method數組
c) 遍歷該Method數組,取得每一個Method對象
d) 調用每個Method對象的isAnnotationPresent(Test.class)方法,即判斷該方法是否被Test註解所修飾。
e) 如果該方法返回true,那麼調用method.invoke()方法執行該方法,否則不執行。
8.異常(Exception)
9.Java中的異常分爲兩大類
a) Checked exception (非RuntimeException)
b) Unchecked exception (RuntimeException)
10.Java中所有的異常類都會直接或間接地繼承Exception
11.RuntimeException類也是直接繼承自Exception類,叫做運行時異常,Java中所有的運行時異常都會直接或間接的繼承RuntimeException。
12.Java中凡是繼承自Exception而不是繼承自RuntimeException的類都是非運行時異常
13.異常處理模板代碼try... Catch... Finally...
14.對於非運行時異常(checked exception),必須要對其進行處理,處理方式有兩種:
a) 使用try catch finally 進行捕獲
b) 在調用該會產生異常的方法所在的方法聲明throws exception
15.對於運行時異常(runtime exception),我們可以不對其進行處理,也可以對其進行處理。
16.NullPointException是空指針異常,出現該異常的原因在於某個引用爲null,但是我們卻還調用了它的方法,這時就會出現該異常。備註:空指針處理比較麻煩,因爲它沒有明確指定。