Java面向?qū)ο筮x擇題總結(jié)歸納
把最近聽的寫的一些題目做下筆記!
1.下列程序的執(zhí)行,說法錯誤的是 ( ABC )
public class MultiCatch { public static void main(String args[]){ try{ int a=args.length; int b=42/a; //10行 int c[]={1}; c[42]=99; System.out.println("b="+b); }catch(ArithmeticException e){ System.out.println("除0異常:"+e); // 15行 }catch(ArrayIndexOutOfBoundsException e) { System.out.println("數(shù)組超越邊界異常:"+e); // 19行 } } }
A、程序?qū)⑤敵龅?5行的異常信息
B、程序第10行出錯
C、程序?qū)⑤敵觥眀=42”
D、程序?qū)⑤敵龅?5或者19行的異常信息
筆記:首先分析A選項,它說第15行將會輸出異常信息,那我們先看下整個程序,int a =args.length 這一句是獲取args數(shù)組的長度,這個地方也許很多人都不清楚,都認為這里就是空的,也就是長度為0,那么肯定會拋出異常的,但是其實這個main中的這個數(shù)組是可以賦值的(這里大家可以百度一下),這個賦值是很特殊的,所以A不對,不一定會拋出異常。
同樣B也是一樣的道理。
我們看C、程序?qū)⑤敵觥眀=42”。很顯然如果args數(shù)組真為0,那么他會跳過System.out.println(“b=”+b);直接進入catch語句拋出異常,所以不一定會輸出42。
看D、程序?qū)⑤敵龅?5或者19行的異常信息,很顯然數(shù)組越界是百分之百會報錯的,但是不一定會有除0異常,所以D對。
2. 此方法返回值是多少(B )
public static int divide(){ int i = 3; try { int a = 10/0; return i; } catch (Exception e) { i = 4; return i; }finally{ i = 5; } }
A.3
B.4
C.5
D.報異常錯誤
分析:這個題確實有點坑,但是return掌握完全 就沒問題了,相信大部分人選C,但實際答案確實B。我們先一步一步分析,首先try中的肯定會拋出異常,于是到了int a =10\0 的時候就直接跳到了catch語句中,此時i被賦值為4,并且此時return 返回 i值,我們都知道finally的語句中是最后一定會執(zhí)行的,但是我們在catch中把 i 給返回了,其他的任何賦值都沒用?。。?
所以選B。
3。對于catch子句的排列,下列哪種是正確的( B )
A、父類在先,子類在后
B、子類在先,父類在后
C、有繼承關(guān)系的異常不能在同一個try程序段內(nèi)
D、先有子類,其他如何排列都無關(guān)
分析:我舉兩個
像底下這種,是可以的
public class MultiCatch { public static void main(String args[]){ try{ 。。。。此處省略 }catch(ArithmeticException e){ //子類異常 System.out.println("除0異常:"+e); }catch(Exception e) { System.out.println("異常:"+e); //父類異常 } } }
像底下這種就不行,回報錯,因為Exception是很大的一個類,基本所有異常都繼承于它,有了它就可以處理所有的異常,所以導致后面寫的就沒有意義,所以是錯的
public class MultiCatch { public static void main(String args[]){ try{ 。。。。此處省略 }catch(Exception e){ //父類異常 System.out.println("異常:"+e); }catch(ArithmeticException e) { System.out.println("除0異常:"+e); //子類異常 } } }
好吧,今天就寫這么多,以后會繼續(xù)給大家分享我做的一些題目
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
spring boot整合redis實現(xiàn)RedisTemplate三分鐘快速入門
這篇文章主要介紹了spring boot整合redis實現(xiàn)RedisTemplate三分鐘快速入門,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12