天天看點

Java面向對象選擇題總結歸納

把最近聽的寫的一些題目做下筆記!

1.下列程式的執行,說法錯誤的是 ( 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("數組超越邊界異常:"+e);   // 19行
    }
  }
}
           

A、程式将輸出第15行的異常資訊

B、程式第10行出錯

C、程式将輸出”b=42”

D、程式将輸出第15或者19行的異常資訊

筆記:首先分析A選項,它說第15行将會輸出異常資訊,那我們先看下整個程式,int a =args.length 這一句是擷取args數組的長度,這個地方也許很多人都不清楚,都認為這裡就是空的,也就是長度為0,那麼肯定會抛出異常的,但是其實這個main中的這個數組是可以指派的(這裡大家可以百度一下),這個指派是很特殊的,是以A不對,不一定會抛出異常。

同樣B也是一樣的道理。

我們看C、程式将輸出”b=42”。很顯然如果args數組真為0,那麼他會跳過System.out.println(“b=”+b);直接進入catch語句抛出異常,是以不一定會輸出42。

看D、程式将輸出第15或者19行的異常資訊,很顯然數組越界是百分之百會報錯的,但是不一定會有除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的語句中是最後一定會執行的,但是我們在catch中把 i 給傳回了,其他的任何指派都沒用!!!

是以選B。

3。對于catch子句的排列,下列哪種是正确的( B )

A、父類在先,子類在後

B、子類在先,父類在後

C、有繼承關系的異常不能在同一個try程式段内

D、先有子類,其他如何排列都無關

分析:我舉兩個

像底下這種,是可以的

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);   //子類異常
}
}
}
           

好吧,今天就寫這麼多,以後會繼續給大家分享我做的一些題目

總結

以上就是這篇文章的全部内容了,希望本文的内容對大家的學習或者工作具有一定的參考學習價值

為了學習工作與休閑娛樂互不沖突,現建立圈【碼農茶水鋪】用于程式員生活,愛好,交友,求職招聘,吐槽等話題交流,希望各位大神工作之餘到茶水鋪來喝茶聊天。群号:603619042

還有大量的面試題,視訊資源共享,

Java面向對象選擇題總結歸納