首頁 > 軟體

Java日常練習題,每天進步一點點(8)

2021-07-22 13:00:56

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

總結

本篇文章就到這裡了,希望能給你帶來幫助,也希望您能夠多多關注it145.com的更多內容!


IT145.com E-mail:sddin#qq.com