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的更多內容!