? ?1. Java中異常分為哪些種類?
? ? ? ? ? ? (1)?編譯時(shí)異常,也叫強(qiáng)制性異常,和CheckedException
? ? ? ? ? ? (2)運(yùn)行時(shí)異常,也叫沒強(qiáng)制性異常和RuntimeException
? ?2.error和exception的區(qū)別?
????????error一般是指在虛擬機(jī)相關(guān)的問題,如系統(tǒng)崩潰,虛擬機(jī)錯(cuò)誤,內(nèi)存空間不足,方法調(diào)用棧溢出等,這類錯(cuò)誤導(dǎo)致應(yīng)用程序中斷,程序自身是無法恢復(fù)的,這時(shí)候,我們一般建議終止程序
Exception類表示程序可以處理的異常,可以捕獲且可能恢復(fù),遇到這類異常,應(yīng)該盡可能的處理異常,,是程序恢復(fù)運(yùn)行,而不是隨意終止程序
3.請寫出你最常見的幾個(gè)RuntimeException????????
? ?1.java.lang.NullPointerException?空指針異常
? ?2.java.lang.ClassNotFoundException?找不到指定的類
? 3.java.lang.NumberFormatException?字符串轉(zhuǎn)換為數(shù)字異常
? ?4.java.lang.IndexOutOfBoundsException?數(shù)組角標(biāo)越界異常
? ?5.java.lang.ClassCastException? ?數(shù)據(jù)類型轉(zhuǎn)換異常
? ?6.SQLException SQL異常
? ?7.java.lang.IllegalArgumentException?方法傳遞參數(shù)錯(cuò)誤
4.throw和throws的區(qū)別
? ? throw?語句用在方法體內(nèi),表示拋出異常,它拋出的是異常實(shí)例,所以執(zhí)行throw一定拋出異常
? throws:用在方法聲明后,如果有異常進(jìn)行拋出,沒有異常不處理,拋出的是某種類型的異常
5.final、finally、finalize的區(qū)別?
? ? ? ? ? ? final:是用來,聲明屬性,方法和類,分別表示,屬性不可變,類不可繼承,方法不能覆蓋
? ? ? ? ? ? finally:異常處理語句結(jié)構(gòu)的一部分,表示總能執(zhí)行
? ? ? ? ? ? finalize:Object類的一個(gè)方法,用來垃圾回收的(這里?我是這么理解的)