**1. throw 和 throws 的區別?**
- throw:是真實拋出一個異常。
- throws:是聲明可能會拋出一個異常。
*****
**2. final、finally、finalize 有什么區別?**
- final:是修飾符,如果修飾類,此類不能被繼承;如果修飾方法和變量,則表示此方法和此變量不能在被改變,只能使用。
- finally:是 try{} catch{} finally{} 最后一部分,表示不論發生任何情況都會執行,finally 部分可以省略,但如果 finally 部分存在,則一定會執行 finally 里面的代碼。
- finalize: 是 Object 類的一個方法,在垃圾收集器執行的時候會調用被回收對象的此方法。
*****
**3. try-catch-finally 中哪個部分可以省略?**
try-catch-finally 其中 catch 和 finally 都可以被省略,但是不能同時省略,也就是說有 try 的時候,必須后面跟一個 catch 或者 finally。
*****
**4.try-catch-finally 中,如果 catch 中 return 了,finally 還會執行嗎?**
finally 一定會執行,即使是 catch 中 return 了,catch 中的 return 會等 finally 中的代碼執行完之后,才會執行。
*****
**5. 常見的異常類有哪些?**
- NullPointerException 空指針異常
- ClassNotFoundException 指定類不存在
- NumberFormatException 字符串轉換為數字異常
- IndexOutOfBoundsException 數組下標越界異常
- ClassCastException 數據類型轉換異常
- FileNotFoundException 文件未找到異常
- NoSuchMethodException 方法不存在異常
- IOException IO 異常
- SocketException Socket 異常