刷题07
1.有時為了避免某些未識別的異常拋給更高的上層應用,在某些接口實現中我們通常需要捕獲編譯運行期所有的異常, catch 下述哪個類的實例才能達到目的:()
正確答案:B
A. Error
B. Exception
C. RuntimeException
D. Throwable
解析:error是系統出錯,JVM問題,catch是無法處理的,難以修復的;
首先Throwable分為Error和Exception.
Exception分為CheckedException和RuntimeException;
RuntimeException不需要程序員進行捕獲處理.我們只需要對exception的實例進行捕獲即可.
2.根據以下接口和類的定義,要使代碼沒有語法錯誤,則類Hero中應該定義方法( )。
interface Action{ void fly(); }class Hero implements Action{ //……
正確答案:D
A. private void fly(){}
B. void fly(){}
C. protected void fly(){}
D. public void fly(){}
解析:接口方法默認是public abstract的,且實現該接口的類中對應的方法的可見性不能小于接口方法的可見性,因此也只能是public的。
3.下面有關maven和ant的描述,描述錯誤的是?
正確答案:C
A. Ant沒有正式的約定如一個一般項目的目錄結構,你必須明確的告訴Ant哪里去找源代碼B. Maven擁有約定,因為你遵循了約定,它已經知道你的源代碼
C. maven和ant都有“生命周期”的概念,當你輸一個命令后,maven或者ant會執行一系列的有序的步驟,直到到達你指定的生命周期
D. Ant構建文件默認命名為build.xml,Maven默認構建文件為pom.xml
解析:
Ant是軟件構建工具,Maven的定位是軟件項目管理和理解工具。
Ant特點 ?沒有一個約定的目錄結構 ?必須明確讓ant做什么,什么時候做,然后編譯,打包 ?沒有生命周期,必須定義目標及其實現的任務序列?沒有集成依賴管理 Maven特點 ?擁有約定,知道你的代碼在哪里,放到哪里去 ?擁有一個生命周期,例如執行 mvninstall 就可以自動執行編譯,測試,打包等構建過程?只需要定義一個pom.xml,然后把源碼放到默認的目錄,Maven幫你處理其他事情 ?擁有依賴管理,倉庫管理。
4.Consider the following code:
String s=null;
Which code fragments cause an object of type NullPointerException to be thrown?
正確答案: A C
A. if((s!=null)&(s.length()>0))
B. if((s!=null)&&(s.length()>0))
C. if((s==null)|(s.length()0))
D. if((snull)||(s.length()==0))
解析:||和&&會短路,而 | & 在邏輯運算時不會短路,運算符左右兩邊都會執行。
| : 檢測ture;不具備短路功能,會檢查每一個條件,表達式中只要一個ture 就整體返回true;
|| : 檢測true;具備短路功能,一遇到true,就返回true;不再執行||后面的語句;
按位與&: 檢測false:同理
5.對 Map 的用法,正確的有:
正確答案: C D
A. new java.util.Map().put(“key” , “value”) ;
B. new java.util.SortedMap().put(“key” , “value”) ;
C. new java.util.HashMap().put( null , null ) ;
D. new java.util.TreeMap().put( 0 , null ) ;
解析:Map和SortedMap為接口,接口不能實例化對象,
HashMap集合的鍵和值可以為null,但是鍵只能設置一個null,而值可以有很多個null;
TreeMap會默認按照key對存放的對象進行排序,因此TreeMap允許value值為null,不允許key值為null.
6…一個文件中的數據要在控制臺上顯示,首先需要( )。
正確答案: C
A. System.out.print (buffer[i]);
B. FileOutputStream fout = new FileOutputStream(this.filename);
C. FileInputStream fin = new FileInputStream(this.filename);。
D. System.in.read(buffer)。
解析:一個文件中的數據要在控制臺顯示,首先需要獲取文件中的內容,使用FileInputStream fin = new FileInputStream(this.filename);
7.下面哪一項不是加載驅動程序的方法?
正確答案: A
A. 通過DriverManager.getConnection方法加載
B. 調用方法 Class.forName
C. 通過添加系統的jdbc.drivers屬性
D. 通過registerDriver方法注冊
解析:
加載驅動方法
1).Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”);
2). DriverManager.registerDriver(new com.mysql.jdbc.Driver());
3).System.setProperty(“jdbc.drivers”, “com.mysql.jdbc.Driver”);
DriverManager.getConnection方法返回一個Connection對象,這是加載驅動之后才能進行的。
8.下面哪些具體實現類可以用于存儲鍵,值對,并且方法調用提供了基本的多線程安全支持:( )
正確答案: A E
A. java.util.ConcurrentHashMap
B. java.util.Map
C. java.util.TreeMap
D. java.util.SortMap
E. java.util.Hashtable
F. java.util.HashMap
解析:j
ava.util.concurrent.ConcurrentHashMap 線程安全
java.util.Map 接口
java.util.TreeMap非線程安全
java.util.SortedMap 接口
java.util.Hashtable 線程安全
java.util.HashMap非線程安全
9.根據下面這個程序的內容,判斷哪些描述是正確的:( )
正確答案: C D
A. 這段程序有編譯錯誤
B. 語句1輸出為:Hello, tommy
C. 語句2輸出為:Hello, tommy
D. 語句1輸出為:Welcome, tommy
E. 語句2輸出為:Welcome, tommy
F. 根據選用的Java編譯器不同,這段程序的輸出可能不同
解析:方法的調用首先以參數類型最符合作為原則。
Java語言是靜態多分派,動態單分派的。
如果是重載方法之間的選擇,則是使用靜態類型。
如果是父類與子類之間的重寫方法的選擇,則是使用動態類型。
如A a = new B(); 會使用類型B去查找重寫的方法,使用類型A去查找重載的方法。
10.下列描述正確的是( )?
正確答案: A C
A. 類不可以多繼承而接口可以多實現
B. 抽象類自身可以定義成員而接口不可以
C. 抽象類和接口都不能被實例化
D. 一個類可以有多個基類和多個基接口
解析:1.java支持單繼承,卻可以實現多個接口。
2.接口沒有構造方法,所以不能實例化,抽象類有構造方法,但是不是用來實例化的,是用來初始化的。
3.抽象類可以定義普通成員變量而接口不可以,但是抽象類和接口都可以定義靜態成員變量,只是接口的靜態成員變量要用static final public 來修飾。
11.判斷一塊內存空間是否符合垃圾收集器收集的標準有哪些?
正確答案: A B D
A. 給對象賦予了空值null,以下再沒有調用過
B. 對象重新分配了內存空間
C. 給對象賦予了空值null
D. 給對象賦予了新值
解析:在java語言中,判斷一塊內存空間是否符合垃圾收集器收集標準的標準只有兩個:
1.給對象引用置為null,以下沒有調用過。obj=null;
2.給對象賦了新的值,重新分配了內存空間,即對象的引用重新指向了另一個對象,回收上一個new的對象所占的內存。obj = new Object1(); obj = new Object2();回收obj第一次指向的Object1()所占的內存。
知識點:
has-a表示從屬:Gadget has-a Sprocket就表示Gadget中有Sprocket的引用,Sprocket是Gadget的組成部分;
like-a表示組合:如果A like-a B,那么B就是A的接口
總結
- 上一篇: 小记6月19
- 下一篇: Holo风格的开源中国Android客户