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

承蒙各位厚愛,我們一起每天進步一點點!(鼠標選中空白處查看答案)

1、下列不屬於訪問控制符的是()

正確答案: D

public

private

protected

static

題解:
在這裡插入圖片描述

2、Java 源程序文件的擴展名為()

正確答案: A

.java

.class

.exe

.jar

題解:
.class 編譯後的Java文件
.java是未編譯的程序
.jsp是頁面程序
.xml配置程序
.jar是.calss的集合

3、以下程序的執行結果是:

static boolean foo(char c)

{

System.out.print©;

return true;

}

public static void main(String[] args) {

int i =0;

for(foo(‘A’);foo(‘B’)&&(i<2);foo(‘C’))

{

i++;

foo(‘D’);

}

}

正確答案: A

ABDCBDCB

ABCDABCD

編譯時出錯

運行時拋出異常

題解:
例子:for(1;2;3){
4;
}
這題考察的應該是for循環的執行順序:
1隻在開頭執行一次便不再執行;然後是2->4->3->2->4->3這樣循環下去;等到滿足終止條件時到2就停止瞭,所以選A

4、給定代碼:

public class SwitchTest{//1

public static void main(String[] args) {//2

System.out.println(“value=”+switchit(4));//3

}//4

public static int switchit(int x) {

int j=1;

switch (x) {

case 1:j++;

case 2:j++;

case 3:j++;

case 4:j++;

case 5:j++;

default:j++;

}

return j+x;

}

}

第三行將輸出什麼?

正確答案: B

value=6

value=8

value=3

value=5

value=4

題解:
沒有break,從case 4開始一直執行到最後,j自加3次變成瞭4,結果返回8

5、下面有關List接口、Set接口和Map接口的描述,錯誤的是?

正確答案: A

他們都繼承自Collection接口

List是有序的Collection,使用此接口能夠精確的控制每個元素插入的位置

Set是一種不包含重復的元素的Collection

Map提供key到value的映射。一個Map中不能包含相同的key,每個key隻能映射一個value

題解:
在這裡插入圖片描述

6、以下代碼的輸出結果是?

public class B

{

public static B t1 = new B();

public static B t2 = new B();

{

System.out.println(“構造塊”);

}

static

{

System.out.println(“靜態塊”);

}

public static void main(String[] args)

{

B t = new B();

}

}

正確答案: C

靜態塊 構造塊 構造塊 構造塊

構造塊 靜態塊 構造塊 構造塊

構造塊 構造塊 靜態塊 構造塊

構造塊 構造塊 構造塊 靜態塊

題解:
開始時JVM加載B.class,對所有的靜態成員進行聲明,t1 t2被初始化為默認值,為null,又因為t1 t2需要被顯式初始化,所以對t1進行顯式初始化,初始化代碼塊→構造函數(沒有就是調用默認的構造函數),咦!靜態代碼塊咋不初始化?因為在開始時已經對static部分進行瞭初始化,雖然隻對static變量進行瞭初始化,但在初始化t1時也不會再執行static塊瞭,因為JVM認為這是第二次加載類B瞭,所以static會在t1初始化時被忽略掉,所以直接初始化非static部分,也就是構造塊部分(輸出’‘構造塊”)接著構造函數(無輸出)。接著對t2進行初始化過程同t1相同(輸出’構造塊’),此時就對所有的static變量都完成瞭初始化,接著就執行static塊部分(輸出’靜態塊’),接著執行,main方法,同樣也,new瞭對象,調用構造函數輸出(‘構造塊’),所以選C

7、URL u =new URL(“http://www.123.com”);。如果www.123.com不存在,則返回______。

正確答案: A

http://www.123.com

””

null

拋出異常

題解:
new URL()時必須捕獲檢查異常,但這個異常是由於字符串格式和URL不符導致的,與網址是否存在無關。URL的toString方法返回字符串,無論網址是否存在。

8、what is the result of the following code?

enum AccountType

{

SAVING, FIXED, CURRENT;

private AccountType()

{

System.out.println(“It is a account type”);

}

}

class EnumOne

{

public static void main(String[]args)

{

System.out.println(AccountType.FIXED);

}

}

正確答案: C

Compiles fine and output is prints”It is a account type”once followed by”FIXED”

Compiles fine and output is prints”It is a account type”twice followed by”FIXED”

Compiles fine and output is prints”It is a account type”thrice followed by”FIXED”

Compiles fine and output is prints”It is a account type”four times followed by”FIXED”

Compilation fails

翻譯:

編譯良好,輸出是打印“它是一個帳戶類型”,後面跟著“FIXED”

編譯良好,輸出打印” It is a account type “兩次,後面跟著” FIXED “

編譯良好,輸出是打印“這是一個帳戶類型”三次,然後是“FIXED”

編譯良好,輸出是打印“這是一個帳戶類型”四次,然後是“FIXED”

編譯失敗

9、下面關於volatile的功能說法正確的是哪個

正確答案: B C

原子性

有序性

可見性

持久性

題解:
synchronized保證三大性,原子性,有序性,可見性,volatile保證有序性,可見性,不能保證原子性

10、下面哪些類可以被繼承? Java.lang.Thread、java.lang.Number、java.lang.Double、java.lang.Math、

java.lang.ClassLoader

正確答案: A B E

Thread

Number

Double

Math

ClassLoader

題解:
A:Thread可以被繼承,用於創建新的線程
B:Number類可以被繼承,Integer,Float,Double等都繼承自Number類
C:Double類的聲明為
public final class Doubleextends Numberimplements Comparable<Double>
final生明的類不能被繼承
D:Math類的聲明為
public final class Mathextends Object
不能被繼承
E:ClassLoader可以被繼承,用戶可以自定義類加載器

答案匯總:

1、正確答案: D

2、正確答案: A

3、正確答案: A

4、正確答案: B

5、正確答案: A

6、正確答案: C

7、正確答案: A

8、正確答案: C

9、正確答案: B C

10、正確答案:A B E

總結

本篇文章就到這裡瞭,希望能給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!

推薦閱讀: