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

1、若 a 的值為 3 時,下列程序段被執行後, c 的值是多少?( )

int c = 1;

if ( a>0 ){

if ( a>3){

c = 2;

}

else{

c = 3;

}

}

else{

c = 4;

}

正確答案: C

1

2

3

4

題解:
無題解

2、以下哪項不是java基礎類型()

正確答案: C

boolean

String

float

題解:
數據類型包括基本數據類型和引用數據類型
基本數據類型:byte,short,int,long,char,float,double,boolean
引用數據類型:數組,接口,枚舉,類,空類

3、Java中隻有整型才能使用的運算符為?

正確答案: C

*

/

%

+

題解:
ABD選項的操作符都可用於float和double
隻有%取餘操作,隻適用於整型

4、下面代碼運行結果是()

public class Test{	
    public int add(int a,int b){	
         try {	
             return a+b;		
         } 
        catch (Exception e) {	
            System.out.println("catch語句塊");	
         }	
         finally{	
             System.out.println("finally語句塊");	
         }	
         return 0;	
    } 
     public static void main(String argv[]){ 
         Test test =new Test(); 
         System.out.println("和是:"+test.add(9, 34)); 
     }
}

正確答案: C

A:catch語句塊

和是:43

B:編譯異常

C:finally語句塊

和是:43

D:和是:43

finally語句塊

題解:
結論:
1、不管有木有出現異常,finally塊中代碼都會執行;
2、當try和catch中有return時,finally仍然會執行;
3、finally是在return後面的表達式運算後執行的(此時並沒有返回運算後的值,而是先把要返回的值保存起來,管finally中的代碼怎麼樣,返回的值都不會改變,任然是之前保存的值),所以函數返回值是在finally執行前確定的;
4、finally中最好不要包含return,否則程序會提前退出,返回值不是try或catch中保存的返回值。

5、抽象類方法的訪問權限默認都是public。( )

正確答案: B

正確

錯誤

題解:
關於抽象類
JDK 1.8以前,抽象類的方法默認訪問權限為protected
JDK 1.8時,抽象類的方法默認訪問權限變為default
關於接口
JDK 1.8以前,接口中的方法必須是public的
JDK 1.8時,接口中的方法可以是public的,也可以是default的
JDK 1.9時,接口中的方法可以是private的

6、要導入java/awt/event下面的所有類,敘述正確的是?()

正確答案: C

import java.awt. * 和import java.awt.event. * 都可以

隻能是import java.awt. *

隻能是import java.awt.event. *

import java.awt. * 和import java.awt.event. * 都不可以

題解:
java.awt. * 是導入java\awt包下所有的類,並不包括其子包下的類。
java.awt.event. * 才能導入java\awt\event包下的類。

7、JDK中提供的java、javac、jar等開發工具也是用Java編寫的。

正確答案: A

題解:
JAVA裡的jvm虛擬機用的是C語言+匯編語言開發的,其它就是java編寫的瞭。

8、關於AWT和Swing說法正確的是?

正確答案: D

Swing是AWT的子類

AWT在不同操作系統中顯示相同的風格

AWT不支持事件類型,Swing支持事件模型

Swing在不同的操作系統中顯示相同的風格

題解:
Swing是輕量級組件,AWT是重量級組件,不存在 繼承關系。
AWT由於不完善,是用本地化方法實現窗體創建,所以顯示風格跟平臺相關。
Swing是彌補這一缺點,窗體的創建與平臺無關。
awt與swing都支持事件模型。

9、下面代碼在main()方法中第八行後可以正常使用的是( )

public class Test

{

private int a=10;

int b=20;

static int c=1;

public static void main(String arg[])

{

Test t = new Test();

}

}

正確答案: A D

t.a

this.c

Test.b

t.c

題解:
A : 在private 修飾不能在外部類中調用,main 方法屬於Test類的方法, 所以 對象 t 可以在他自己的類方法中調用它的private
B : static 方法中沒有this 這麼一說
C: b不是static變量
D: 合理

10、關於下面一段代碼,以下說法正確的是: ()

public class Test {
    private synchronized void a() {
    }
    private void b() {
        synchronized (this) {
        }
    }
    private synchronized static void c() {
    }
    private void d() {
        synchronized (Test.class) {
        }
    }
}

正確答案: A C

同一個對象,分別調用方法a和b,鎖住的是同一個對象

同一個對象,分別調用方法a和c,鎖住的是同一個對象

同一個對象,分別調用方法b和c,鎖住的不是同一個對象

同一個對象,分別調用方法a、b、c,鎖住的不是同一個對象

題解:
方法a為同步方法,方法b裡面的是同步塊,同步方法使用的鎖是固有對象this,同步塊使用的鎖可以是任意對象,但是方法b裡面的同步塊使用的鎖是對象this,所以方法a和方法b鎖住的是同一個對象。方法 c為靜態同步方法,使用的鎖是該類的字節碼文件,也就是Test.class。方法d裡面的也是同步塊,隻不過使用的鎖是Test.class,所以方法c和方法d鎖住的是同一個對象。

答案匯總:

1、正確答案: C

2、正確答案: C

3、正確答案: C

4、正確答案: C

5、正確答案: B

6、正確答案: C

7、正確答案: A

8、正確答案: D

9、正確答案: A D

10、正確答案: A C

總結

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

推薦閱讀: