刷题09
1.在Jdk1.7中,下述說法中抽象類與接口的區別與聯系正確的有哪些?
正確答案: A B C D
A. 抽象類中可以有普通成員變量,接口中沒有普通成員變量。
B. 抽象類和接口中都可以包含靜態成員常量。
C.一個類可以實現多個接口,但只能繼承一個抽象類
D. 抽象類中可以包含非抽象的普通方法,接口中的方法必須是抽象的,不能有非抽象的普通方法。
解析:Java 8里的接口可以有default方法
2.Math.round(11.5) 等于多少 (). Math.round(-11.5) 等于多少 ( ).
正確答案: C
11 ,-11
11 ,-12
12 ,-11
12 ,-12
解析:Math類中提供了三個與取整有關的方法: == ceil,floor,round,== 這些方法的作用于它們的英文名稱的含義相對應,例如:ceil的英文意義是天花板,該方法就表示向上取整,Math.ceil(11.3)的結果為12,Math.ceil(-11.6)的結果為-11;floor的英文是地板,該方法就表示向下取整,Math.floor(11.6)的結果是11,Math.floor(-11.4)的結果-12;round方法,他表示“四舍五入”,算法為Math.floor(x+0.5),即將原來的數字加上0.5后再向下取整,所以,Math.round(11.5)的結果是12,Math.round(-11.5)的結果為-11.
3.關于異常的編程,以下描述錯誤的是:( )
正確答案: A
A. 在有除法存在的代碼處,為了防止分母為零,必須拋出并捕獲異常
B. int i=Integer.parseInt(”123a”);將產生NumberFormatException
C. int a[]=null; a[0]=1; 將產生NullPointerException
D. 輸入輸出流編程中,讀和寫時都要拋出IOException
解析:分母為0,是運行時異常,不強制需要處理。
4.如下代碼,執行test()函數后,屏幕打印結果為()
正確答案: D
A. 127 127
B. 128 127
C. 129 128
D. 以上都不對
解析:考察引用傳遞,但是因為包裝類和String一樣,都是不可變類。也就是說作為參數傳遞時,一開始實參和形參就不指向同一個地址(相當于是副本)。
add(++a),這個時候,是++a,a變成了-128然后作為參數傳遞了。
而add(b),還是b = 127。正確答案:-128,127.
包裝類的值都是final 不可變的,對于++b 或者b++ ,只是新創建了一個對象,然后把引用傳給了原對象句柄,在函數中操作,只是形參的臨時句柄改變了指向,實參的句柄還是指向原來的對象。所以即使不是b = b++ 這種,b的值在add之后也是不會變的。
附Holiday_12138清晰說明:
5.以下代碼執行的結果顯示是多少()?
正確答案: B 你的答案: D (錯誤)
A. num * count = 505000
B. num * count = 0
C. 運行時錯誤
D. num * count = 5050
解析:count = count ++;先將count=0這個值暫存起來,然后count自加1變成1,最后將暫存的值賦值給count,count最終的值為0。
后++,先賦值,后++;
6.常用的servlet包的名稱是?
正確答案: B D
java.servlet
javax.servlet
servlet.http
javax.servlet.http
7.正確項:
正確答案: D
A. int a [10]
B. int a []=new [10]
C. int a[]
int a []=new int [10]
D. int a []={1,2,3,4,5}
解析:Java一維數組有兩種初始化方法
1、靜態初始化:int array[] = new int[]{1,2,3,4,5} / int array[] = {1,2,3,4,5};
2.動態初始化:int array[] = new int[5];
array[0] = 1;
array[1] = 2;
array[2] = 3;
array[3] = 4;
array[4] = 5;
靜態與動態初始化的區別就在于,前者是聲明的時候就初始化,后者是先聲明,再動態初始化。
8.以下是java concurrent包下的4個類,選出差別最大的一個
正確答案: C
Semaphore
ReentrantLock
Future
CountDownLatch
解析:A、Semaphore:類,控制某個資源可被同時訪問的個數;
B、ReentrantLock:類,具有與使用synchronized方法和語句所訪問的隱式監視器鎖相同的一些基本行為和語義,但功能更強大;
C、 Future:接口,表示異步計算的結果;
D、 CountDownLatch: 類,可以用來在一個線程中等待多個線程完成任務的類。
9.當我們需要所有線程都執行到某一處,才進行后面的的代碼執行我們可以使用?
正確答案: B
CountDownLatch
CyclicBarrier
Semaphore
Future
10.下面的switch語句中,x可以是哪些類型的數據:()
正確答案: B D
A. long
B. char
C. float
D. byte
E. double
F. Object
解析:jdk1.7之前byte,short ,int ,char==》都可自動提升為int
jdk1.7之后加入String
11.有關hashMap跟hashtable的區別,說法正確的是?
正確答案: B C D
A. HashMap和Hashtable都實現了Map接口
B. HashMap是非synchronized,而Hashtable是synchronized
C. HashTable使用Enumeration,HashMap使用Iterator
D. HashMap允許將 null 作為一個 entry 的 key 或者 value,而 Hashtable 不允許。
12.關于運行時常量池,下列哪個說法是正確的
正確答案: B C D
A. 運行時常量池大小受棧區大小的影響
B. 運行時常量池大小受方法區大小的影響
C. 存放了編譯時期生成的各種字面量
D. 存放編譯時期生成的符號引用
解析:
常量池分為兩種:
靜態常量池。靜態常量池也就是Class文件中的常量池。
運行時常量池。運行時常量池是方法區的一部分。Class文件中除了有類的版本、字段、方法、接口等描述信息外還有一項信息是常量池。用于存放編譯期生成的字面量和符號應用,這部分內容將在類加載后進入方法區的時候存到運行時常量池中。運行時常量池還有個更重要的的特征:動態性。Java要求,編譯期的常量池的內容可以進入運行時常量池,運行時產生的常量也可以放入池中。
13.servlet周期包含哪些:
正確答案: A B C
初始化
銷毀
請求處理
開始
解析:Servlet 生命周期可被定義為從創建直到毀滅的整個過程。以下是 Servlet 遵循的過程:
Servlet 通過調用 init () 方法進行初始化。
Servlet 調用 service() 方法來處理客戶端的請求。
Servlet 通過調用 destroy() 方法終止(結束)。
最后,Servlet 是由 JVM 的垃圾回收器進行垃圾回收的。
14.假定
Base b = new Derived(); 調用執行b.methodOne()后,輸出結果是什么?
正確答案:A
A. ABDC
B. AB
C. ABCD
D. ABC
解析:只要是被子類重寫的方法,不被super調用都是調用子類方法。
總結
- 上一篇: WCF部署到IIS异常(详细: 不能加载
- 下一篇: 原生js判断css动画结束 css