Java日常練習題,每天進步一點點(8)
1、this代表瞭()的對象引用,super表示的是當前對象的()對象?
正確答案: C
當前類 當前類
當前類的父類 當前類
當前類 當前類的父類
以上都不正確
題解:
this代表當前對象,也就是當前類的對象的引用
super代表其父類對象
2、輸出內容是:
public static void main(String[] args) { Thread t = new Thread() { public void run() { my360DW(); } }; t.run(); System.out.print("DW"); } static void my360DW() { System.out.print("360"); }
正確答案: C
DW
360
360DW
都不輸出
題解:
本題意在考察開啟線程的方法t.start()和直接調用t.run()的區別。但在題目中沒有提現 註:直接調用線程的run()方法不是開啟線程,就是普通調用,會直接執行run()方法中的內容
3、下面程序的輸出是:()
String x="fmn"; x.toUpperCase(); String y=x.replace('f','F'); y=y+"wxy"; System.out.println(y);
正確答案: D
FmNwxy
fmnwxy
wxyfmn
Fmnwxy
題解:
String x=“fmn”; “fmn”是在常量池裡的不可變對象。
x.toUpperCase(); 在堆中new一個”FMN”對象,但無任何引用指向它。
String y=x.replace(‘f’,‘F’); 在堆中 new一個”Fmn”對象,y指向它。
y=y+“wxy”; 在堆中 重新new一個”Fmnwxy”對象, 修改y指向,現在y指向它。
4、執行下列代碼的輸出結果是( )
public class Demo{ public static void main(String args[]){ int num = 10; System.out.println(test(num)); } public static int test(int b){ try { b += 10; return b; } catch(RuntimeException e) { } catch(Exception e2) { } finally { b += 10; return b; } } }
正確答案: C
10
20
30
40
題解:
如果finally塊中有return語句的話,它將覆蓋掉函數中其他return語句。所以是30
5、下面代碼的輸出結果是什麼?
public class ZeroTest { public static void main(String[] args) { try{ int i = 100 / 0; System.out.print(i); }catch(Exception e){ System.out.print(1); throw new RuntimeException(); }finally{ System.out.print(2); } System.out.print(3); } }
正確答案: D
3
123
1
12
題解:
1、inti = 100/ 0; 會出現異常,會拋出異常,System.out.print(i)不會執行,
2、catch捕捉異常,繼續執行System.out.print(1);
3、當執行 thrownewRuntimeException(); 又會拋出異常,這時,除瞭會執行finally中的代碼,其他地方的代碼都不會執行,因此執行完finally語句塊之後,程序終止瞭
6、Math.floor(-8.5)=( )
正確答案: D
(float)-8.0
(long)-9
(long)-8
(double)-9.0
題解:
Math.floor(x) 返回小於等於x的最接近整數,類型為double
Math.floor() 表示向下取整,返回double類型 (floor—地板)
Math.ceil() 表示向上取整,返回double類型 (ceil—天花板)
Math.round() 四舍五入,返回int類型
7、ArrayList list = new ArrayList(20);中的list擴充幾次
正確答案: A
0
1
2
3
題解:
Arraylist默認數組大小是10,擴容後的大小是擴容前的1.5倍,最大值小於Integer 的最大值減8,如果新創建的集合有帶初始值,默認就是傳入的大小,也就不會擴容
8、以下代碼段執行後的輸出結果為
public class Test { public static void main(String args[]) { int i = -5; i = ++(i++); System.out.println(i); } }
正確答案: C
-7
-3
編譯錯誤
-5
題解:
答案是 編譯錯誤。
這題編譯錯誤在於這一句: i = ++(i++);
++( ) 括號裡面必須是一個變量,而 i ++ 是一個字面量。
9、若需要定義一個類,下列哪些修飾符是允許被使用的?( )
正確答案: A C D
static
package
private
public
題解:
普通類(外部類):隻能用public、default(不寫)、abstract、final修飾。
(成員)內部類:可理解為外部類的成員,所以修飾類成員的public、protected、default、private、static等關鍵字都能使用。
局部內部類:出現在方法裡的類,不能用上述關鍵詞來修飾。
匿名內部類:給的是直接實現,類名都沒有,沒有修飾符。
10、Servlet的生命周期可以分為初始化階段,運行階段和銷毀階段三個階段,以下過程屬於初始化階段是()。
正確答案: A C D
加載Servlet類及.class對應的數據
創建servletRequest和servletResponse對象
創建ServletConfig對象
創建Servlet對象
題解:
Servlet的生命周期一般可以用三個方法來表示:
init():僅執行一次,負責在裝載Servlet時初始化Servlet對象
service() :核心方法,一般HttpServlet中會有get,post兩種處理方式。在調用doGet和doPost方法時會構造servletRequest和servletResponse請求和響應對象作為參數。
destory():在停止並且卸載Servlet時執行,負責釋放資源
初始化階段:Servlet啟動,會讀取配置文件中的信息,構造指定的Servlet對象,創建ServletConfig對象,將ServletConfig作為參數來調用init()方法。所以選ACD。B是在調用service方法時才構造的
答案匯總:
1、正確答案: C
2、正確答案: C
3、正確答案: D
4、正確答案: C
5、正確答案: D
6、正確答案: D
7、正確答案: A
8、正確答案: C
9、正確答案: A C D
10、正確答案: A C D
總結
本篇文章就到這裡瞭,希望能給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!
推薦閱讀:
- Java中關於泛型、包裝類及ArrayList的詳細教程
- Java PTA 計算3到7位 水仙花數實例
- Java基礎之Math和Random類知識總結
- Java Math.round函數詳解
- Java日常練習題,每天進步一點點(24)