2014年京東校招筆試中的兩道java題目

兩道都是選擇題


1,調用下面的函數的返回是(C

public static int testt() {
      try {
            return  1;
        }catch(Exception e){
            return 2;
        }finally {
            return 3;
        }
     

    }


A 1,B 2 ,C 3, D 編譯錯誤


2, 下面的的程序輸出是(A

...

List<Integer> list=new ArrayList<Integer>();

list.add(0);

List<Object> list2=list;

System.out.println(list.get(0).instanceof(Integer));

System.out.println(list2.get(0).instanceof(Integer));

...


A 編譯錯誤, B true false, C true true ,D false false


至於 原因明天來分析,其實有時候考點基礎就能考住你。


解釋:關於第一題的try catch 語句塊 需要注意一點的是在 執行try中的return之前一定會執行finally裏面的語句,在第一題中,由於現在finally裏面執行了return所以整個函數返回的值是3而不是1,詳細分析大家可以參考這篇博文 

          而第二題則是在考察java的泛型的複製問題,由於list是List<Integer>類型的 而list2是List<Object>類型了,這裏是兩種不同類型的泛型了, 所以也就不存在所謂的類型自動轉換問題了,要賦值的話,可以把list中的元素拿出來然後一個一個的add到list2中去

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章