Java日常練習(xí)題,每天進步一點點(11)
承蒙各位厚愛,我們一起每天進步一點點!(鼠標選中空白處查看答案)
1、對接口的描述正確的是()
正確答案: A
一個類可以實現(xiàn)多個接口
接口可以有非靜態(tài)的成員變量
在jdk8之前,接口可以實現(xiàn)方法
實現(xiàn)接口的任何類,都需要實現(xiàn)接口的方法
題解:
A,一個類只能有一個直接父類,但是繼承是有傳遞性的。一個類可以實現(xiàn)多的接口。一個接口可以繼承多個類。
B,接口中沒有普通變量(普通成員變量),接口中都是常量,默認修飾符:public static final
C,JDK8之前,接口中的方法都是默認public abstract的,JDK8之后,接口中可以有static、default的修飾的方法,一旦被修飾,方法必須有方法體(抽象方法可是沒有方法體的),接口中的方法都不能被private和protected修飾,同時外部接口、類只能被public修飾或者不寫,但是內(nèi)部接口、類可以被四個訪問修飾符修飾。
D, 實現(xiàn)接口,其實就是需要重寫接口中的abstract方法,一旦實現(xiàn)的類沒有重寫完,那么這個類必須是個抽象類(抽象類中可以沒有抽象方法,但是有抽象方法的類必須是抽象類)。
2、類中的數(shù)據(jù)域使用private修飾為私有變量,所以任何方法均不能訪問它。
正確答案: B
正確
錯誤
題解:
private修飾的東西,只是不能在別的類中訪問,但是本類中還是可以的。同時利用反射也可以做到。
3、已知如下類定義:
class Base { public Base (){ //... } public Base ( int m ){ //... } public void fun( int n ){ //... } } public class Child extends Base{ // member methods }
正確答案: D
private void fun( int n ){ //…}
void fun ( int n ){ //… }
protected void fun ( int n ) { //… }
public void fun ( int n ) { //… }
題解:
方法的重寫(override)兩同兩小一大原則:
方法名相同,參數(shù)類型相同
子類返回類型小于等于父類方法返回類型,
子類拋出異常小于等于父類方法拋出異常,
子類訪問權(quán)限大于等于父類方法訪問權(quán)限。
子類方法的權(quán)限至少要大于父類方法的權(quán)限,只能選D
4、在java的一個異常處理中,可以包含多個的語句塊是 ( )。
正確答案: D
try
finally
throws
catch
題解:
異常處理一般格式:
捕獲異常:
try{
//代碼塊
}catch(異常類型,例如:Exception e){
//需要拋出的異常,例如:e.printStackTrace();
}catch(異常類型){
//需要拋出的異常
}finally{
//必定執(zhí)行的代碼塊
}
所以說在一個異常處理中catch語句塊是可以多個的,也就是可以拋出多個異常!
5、關(guān)于Java語言中的final關(guān)鍵字的使用,下列說法正確的是()
正確答案: C
在使用final關(guān)鍵字定義的方法里面使用final關(guān)鍵字定義變量。
使用final關(guān)鍵字定義變量,必須在變量定義的同時給定變量的具體數(shù)值,完成變量初始化。
final關(guān)鍵字可以用來修飾方法,表明此方法不可以被子類重寫。
使用final關(guān)鍵字定義變量,必須同時使用static關(guān)鍵字。
題解:
A 選項在 final 定義的方法里,不是必須要用 final 定義變量。
B final 定義的變量,可以在不是必須要在定義的同時完成初始化,也可以在構(gòu)造方法中完成初始化。
C 正確,final修飾方法,不能被子類重寫,但是可以被重載。
D final 定義變量,可以用 static 也可以不用。
6、在 main() 方法中給出的整型數(shù)組,如果將其寫到一個文件中,需要( )。
正確答案: B
System.out.print (buffer[i]);
DataOutputStream dout = new DataOutputStream(new FileOutputStream(this.filename));
DataInputStream din = new DataInputStream(new FileInputStream(this.filename));。
System.in.read(buffer)。
題解:
input和output指的是對于程序而言。input是從文件讀取進來,output是輸出到文件。
數(shù)據(jù)寫入文件即out ,把數(shù)據(jù)寫入輸出流 DataOutputStream 輸入輸出流都是對于程序來講的
7、下列有關(guān)Servlet的生命周期,說法不正確的是?
正確答案: A
在創(chuàng)建自己的Servlet時候,應(yīng)該在初始化方法init()方法中創(chuàng)建Servlet實例
在Servlet生命周期的服務(wù)階段,執(zhí)行service()方法,根據(jù)用戶請求的方法,執(zhí)行相應(yīng)的doGet()或是doPost()方法
在銷毀階段,執(zhí)行destroy()方法后會釋放Servlet 占用的資源
destroy()方法僅執(zhí)行一次,即在服務(wù)器停止且卸載Servlet時執(zhí)行該方法
題解:
創(chuàng)建Servlet的實例是由Servlet容器來完成的,且創(chuàng)建Servlet實例是在初始化方法init()之前
Servlet的生命周期分為5個階段:加載、創(chuàng)建、初始化、處理客戶請求、卸載。
(1)加載:容器通過類加載器使用servlet類對應(yīng)的文件加載servlet
(2)創(chuàng)建:通過調(diào)用servlet構(gòu)造函數(shù)創(chuàng)建一個servlet對象
(3)初始化:調(diào)用init方法初始化
(4)處理客戶請求:每當有一個客戶請求,容器會創(chuàng)建一個線程來處理客戶請求
(5)卸載:調(diào)用destroy方法讓servlet自己釋放其占用的資源
Servlet的運行過程:
Servlet程序是由WEB服務(wù)器調(diào)用,web服務(wù)器收到客戶端的Servlet訪問請求后:
?、賅eb服務(wù)器首先檢查是否已經(jīng)裝載并創(chuàng)建了該Servlet的實例對象。如果是,則直接執(zhí)行第④步,否則,執(zhí)行第②步。
?、谘b載并創(chuàng)建該Servlet的一個實例對象。
?、壅{(diào)用Servlet實例對象的init()方法。
?、軇?chuàng)建一個用于封裝HTTP請求消息的HttpServletRequest對象和一個代表HTTP響應(yīng)消息的HttpServletResponse對象,然后調(diào)用Servlet的service()方法并將請求和響應(yīng)對象作為參數(shù)傳遞進去。
⑤WEB應(yīng)用程序被停止或重新啟動之前,Servlet引擎將卸載Servlet,并在卸載之前調(diào)用Servlet的destroy()方法。
8、What is displayed when the following is executed?
double d1=-0.5;
System.out.println(“Ceil d1=”+Math.ceil(d1));
System.out.println(“floor d1=”+Math.floor(d1));
正確答案: A
A:Ceil d1=-0.0
floor d1=-1.0
B:Ceil d1=0.0
floor d1=-1.0
C:Ceil d1=-0.0
floor d1=-0.0
D:Ceil d1=0.0
floor d1=0.0
E:Ceil d1=0
floor d1=-1
題解:
執(zhí)行以下命令顯示什么?
ceil:大于等于 x,并且與它最接近的整數(shù)。
floor:小于等于 x,且與 x 最接近的整數(shù)。
9、假定Base b = new Derived(); 調(diào)用執(zhí)行b.methodOne()后,輸出結(jié)果是什么?
public class Base { public void methodOne() { System.out.print("A"); methodTwo(); } public void methodTwo() { System.out.print("B"); } } public class Derived extends Base { public void methodOne() { super.methodOne(); System.out.print("C"); } public void methodTwo() { super.methodTwo(); System.out.print("D"); } }
正確答案: A
ABDC
AB
ABCD
ABC
題解:
這是一道類多態(tài)的向上轉(zhuǎn)型題。
Base b = new Derived();
向上轉(zhuǎn)型:父類只能調(diào)用父類方法或者子類覆寫后的方法,而子類中的單獨方法則是無法調(diào)用的。
10、下面關(guān)于變量及其范圍的陳述哪些是不正確的()
正確答案: B C
實例變量是類的成員變量
實例變量用關(guān)鍵字static聲明
在方法中定義的局部變量在該方法被執(zhí)行時創(chuàng)建
局部變量在使用前必須被初始化
題解:
A.類的成員變量包括實例變量和類變量(靜態(tài)變量),成員方法包括實例方法和類方法(靜態(tài)方法)。 A正確
B.類變量(靜態(tài)變量)用關(guān)鍵字static聲明,B錯誤
C.方法中的局部變量在方法被調(diào)用加載時開始入棧時創(chuàng)建,方法入棧創(chuàng)建棧幀包括局部變量表操作數(shù)棧,局部變量表存放局部變量,并非在執(zhí)行該方法時被創(chuàng)建,C錯誤
D.局部變量被使用前必須初始化,否則程序報錯。D正確
答案匯總:
1、正確答案: A
2、正確答案: B
3、正確答案: D
4、正確答案: D
5、正確答案: C
6、正確答案: B
7、正確答案: A
8、正確答案: A
9、正確答案: A
10、正確答案: B C
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Java漢字轉(zhuǎn)拼音類庫Pinyin4j詳細使用方法與實例
這篇文章主要介紹了Java漢字轉(zhuǎn)拼音類庫Pinyin4j詳細使用方法與實例,需要的朋友可以參考下2020-02-02SpringBoot在IDEA中實現(xiàn)熱部署的步驟
這篇文章主要介紹了SpringBoot在IDEA中實現(xiàn)熱部署的步驟,幫助大家更好的理解和使用springboot框架,感興趣的朋友可以了解下2020-11-11springboot 無法掃描到父類模塊中Bean的原因及解決
這篇文章主要介紹了springboot 無法掃描到父類模塊中Bean的原因及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08Mac配置 maven以及環(huán)境變量設(shè)置方式
這篇文章主要介紹了Mac配置 maven以及環(huán)境變量設(shè)置方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08IDEA 單元測試報錯:Class not found:xxxx springb
這篇文章主要介紹了IDEA 單元測試報錯:Class not found:xxxx springboot的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01