更新時(shí)間:2020-04-29 14:27:12 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽3048次
所謂異常,就是程序運(yùn)行過(guò)程中出現(xiàn)的非正常情況。所有的程序都存在一些未知的問(wèn)題或是錯(cuò)誤,如果這些問(wèn)題不進(jìn)行處理,可能會(huì)給用戶造成一定的損失。因此對(duì)于Java異常中的問(wèn)題,會(huì)是面試官經(jīng)常詢問(wèn)的。
1、throw和throws的區(qū)別?
答:throw和throws的區(qū)別:throw代表動(dòng)作,表示拋出一個(gè)異常的動(dòng)作;throws代表一種狀態(tài),代表方法可能有異常拋出;throw用在方法實(shí)現(xiàn)中,而throws用在方法聲明中;throw只能用于拋出一種異常,而throws可以拋出多個(gè)異常。
2、final、finally、finalize有什么區(qū)別?
答:final:
(1)修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生新的子類,不能作為父類被繼承。因此一個(gè)類不能及被聲明為abstract,又被聲明為final的。
(2)將變量或方法聲明為final,可以保證他們使用中不被改變。被聲明為final的變量必須在聲明時(shí)給定初值,而以后的引用中只能讀取,不可修改,被聲明為final的方法也同樣只能使用,不能重載。
Finally:
在異常處理時(shí)提供finally塊來(lái)執(zhí)行清楚操作。如果拋出一個(gè)異常,那么相匹配的catch語(yǔ)句就會(huì)執(zhí)行,然后控制就會(huì)進(jìn)入finally塊,如果有的話。
finalize:
是方法名。java技術(shù)允許使用finalize()方法在垃圾收集器將對(duì)象從內(nèi)存中清除之前做必要的清理工作。這個(gè)方法是在垃圾收集器在確定了,被清理對(duì)象沒(méi)有被引用的情況下調(diào)用的。
finalize是在Object類中定義的,因此,所有的類都繼承了它。子類可以覆蓋finalize()方法,來(lái)整理系統(tǒng)資源或者執(zhí)行其他清理工作。
3、try-catch-finally中哪個(gè)部分可以省略?
答:catch和finally語(yǔ)句塊可以省略其中一個(gè)。
4、try,catch,finally都有return語(yǔ)句時(shí)執(zhí)行哪個(gè)?
答:(1)不論是否出現(xiàn)異常,finally塊中代碼都會(huì)執(zhí)行;
(2)當(dāng)try和catch中有return時(shí),finally仍然會(huì)執(zhí)行;
(3)finally是在return后面的表達(dá)式運(yùn)算后執(zhí)行的(此時(shí)并沒(méi)有返回運(yùn)算后的值,而是先把要返回的值保存起來(lái),不管finally中的代碼怎么樣,返回的值都不會(huì)改變,任然是之前保存的值),所以函數(shù)返回值是在finally執(zhí)行前確定的;
(4)finally中最好不要包含return,否則程序會(huì)提前退出,返回值不是try或catch中保存的返回值。
因此,任何執(zhí)行try或者catch中的return語(yǔ)句之前,都會(huì)先執(zhí)行finally語(yǔ)句,如果finally存在的話。
如果finally中有return語(yǔ)句,那么程序就return了,所以finally中的return是一定會(huì)被return的,編譯器把finally中的return實(shí)現(xiàn)為一個(gè)warning。
5、常見(jiàn)的異常類有哪些?
答:
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“五道互聯(lián)網(wǎng)常見(jiàn)的java異常筆試題”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)
初級(jí) 202925
初級(jí) 203221
初級(jí) 202629
初級(jí) 203743