Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(56)
承蒙各位厚愛,我們一起每天進(jìn)步一點(diǎn)點(diǎn)!(鼠標(biāo)選中空白處查看答案)
1、下面所示的java代碼,運(yùn)行時(shí),會產(chǎn)生()類型的異常
int Arry_a[] = new int[10];
System.out.println(Arry_a[10]);
正確答案: D
ArithmeticException
NullPointException
IOException
ArrayIndexOutOfBoundsException
題解:
定義的數(shù)組長度為10,角標(biāo)即為0-9 訪問數(shù)組角標(biāo)10會出現(xiàn)數(shù)組角標(biāo)越界異常 ArithmeticException 算術(shù)異常 NullPointException 空指針異常 IOException IO異常 ArrayIndexOutOfBoundsException 數(shù)組下標(biāo)越界異常
2、關(guān)于依賴注入,下列選項(xiàng)中說法錯誤的是()
正確答案: B
依賴注入能夠獨(dú)立開發(fā)各組件,然后根據(jù)組件間關(guān)系進(jìn)行組裝
依賴注入使組件之間相互依賴,相互制約
依賴注入提供使用接口編程
依賴注入指對象在使用時(shí)動態(tài)注入
題解:
依賴注入的動機(jī)就是減少組件之間的耦合度,使開發(fā)更為簡潔
3、子類A繼承父類B, A a = new A(); 則父類B構(gòu)造函數(shù)、父類B靜態(tài)代碼塊、父類B非靜態(tài)代碼塊、子類A構(gòu)造函數(shù)、子類A靜態(tài)代碼塊、子類A非靜態(tài)代碼塊 執(zhí)行的先后順序是?
正確答案: C
父類B靜態(tài)代碼塊->父類B構(gòu)造函數(shù)->子類A靜態(tài)代碼塊->父類B非靜態(tài)代碼塊->子類A構(gòu)造函數(shù)->子類A非靜態(tài)代碼塊
父類B靜態(tài)代碼塊->父類B構(gòu)造函數(shù)->父類B非靜態(tài)代碼塊->子類A靜態(tài)代碼塊->子類A構(gòu)造函數(shù)->子類A非靜態(tài)代碼塊
父類B靜態(tài)代碼塊->子類A靜態(tài)代碼塊->父類B非靜態(tài)代碼塊->父類B構(gòu)造函數(shù)->子類A非靜態(tài)代碼塊->子類A構(gòu)造函數(shù)
父類B構(gòu)造函數(shù)->父類B靜態(tài)代碼塊->父類B非靜態(tài)代碼塊->子類A靜態(tài)代碼塊->子類A構(gòu)造函數(shù)->子類A非靜態(tài)代碼塊
題解:
會先執(zhí)行靜態(tài)代碼塊,因?yàn)殪o態(tài)代碼塊是類級別的,是在創(chuàng)建對象之前就執(zhí)行的。因?yàn)樽宇惱^承了父類,所以父類的靜態(tài)代碼塊會先執(zhí)行,接著執(zhí)行子類的靜態(tài)代碼塊。
因?yàn)闃?gòu)造函數(shù)可能要給動態(tài)代碼塊的一些成員變量賦值,所以必須在這之前先執(zhí)行動態(tài)代碼塊,要不然構(gòu)造函數(shù)會出現(xiàn)相關(guān)的成員屬性無定義。所以會先執(zhí)行動態(tài)代碼塊,在執(zhí)行構(gòu)造函數(shù)。一般先按父類的執(zhí)行,再按子類的執(zhí)行。
4、以下代碼在編譯和運(yùn)行過程中會出現(xiàn)什么情況
public class TestDemo{ private int count; public static void main(String[] args) { TestDemo test=new TestDemo(88); System.out.println(test.count); } TestDemo(int a) { count=a; } }
正確答案: A
編譯運(yùn)行通過,輸出結(jié)果是88
編譯時(shí)錯誤,count變量定義的是私有變量
編譯時(shí)錯誤,System.out.println方法被調(diào)用時(shí)test沒有被初始化
編譯和執(zhí)行時(shí)沒有輸出結(jié)果
題解:
private是私有變量,只能用于當(dāng)前類中,題目中的main方法也位于當(dāng)前類,所以可以正確輸出
5、Web程序中,當(dāng)前用戶上下文信息應(yīng)該保存在下面哪個(gè)對象中()
正確答案: C
page
request
session
Application
題解:
當(dāng)前用戶上下文信息:session
appication:當(dāng)前應(yīng)用
pageContext:當(dāng)前頁面
request:當(dāng)前請求
6、下面哪個(gè)不屬于HttpServletResponse接口完成的功能?
正確答案: C
設(shè)置HTTP頭標(biāo)
設(shè)置cookie
讀取路徑信息
輸出返回?cái)?shù)據(jù)
題解:
request讀取路徑信息
7、以下說法錯誤的是()
正確答案: D
虛擬機(jī)中沒有泛型,只有普通類和普通方法
所有泛型類的類型參數(shù)在編譯時(shí)都會被擦除
創(chuàng)建泛型對象時(shí)請指明類型,讓編譯器盡早的做參數(shù)檢查
泛型的類型擦除機(jī)制意味著不能在運(yùn)行時(shí)動態(tài)獲取List中T的實(shí)際類型
題解:
1、創(chuàng)建泛型對象的時(shí)候,一定要指出類型變量T的具體類型。爭取讓編譯器檢查出錯誤,而不是留給JVM運(yùn)行的時(shí)候拋出類不匹配的異常。 2、JVM如何理解泛型概念 —— 類型擦除。事實(shí)上,JVM并不知道泛型,所有的泛型在編譯階段就已經(jīng)被處理成了普通類和方法。 處理方法很簡單,我們叫做類型變量T的擦除(erased) 。 總結(jié):泛型代碼與JVM ① 虛擬機(jī)中沒有泛型,只有普通類和方法。 ② 在編譯階段,所有泛型類的類型參數(shù)都會被Object或者它們的限定邊界來替換。(類型擦除) ③ 在繼承泛型類型的時(shí)候,橋方法的合成是為了避免類型變量擦除所帶來的多態(tài)災(zāi)難。 無論我們?nèi)绾味x一個(gè)泛型類型,相應(yīng)的都會有一個(gè)原始類型被自動提供。原始類型的名字就是擦除類型參數(shù)的泛型類型的名字。
8、類B從類A派生,則類B可以訪問類A中的( )成員?
正確答案: A C
public成員
private成員
protected成員
所有數(shù)據(jù)成員
所有函數(shù)成員
題解:
private成員只能在當(dāng)前類中訪問,派生類可以訪問父類的public和protected屬性成員
9、下列關(guān)于系列化和反序列化描述正確的是:
正確答案: A B
序列化是將數(shù)據(jù)轉(zhuǎn)為n個(gè) byte序列的過程
反序列化是將n個(gè) byte轉(zhuǎn)換為數(shù)據(jù)的過程
將類型int轉(zhuǎn)換為4 byte是反序列化過程
將8個(gè)字節(jié)轉(zhuǎn)換為long類型的數(shù)據(jù)為序列化過程
題解:
序列化:將數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換稱為二進(jìn)制數(shù)據(jù)流或者文本流的過程。序列化后的數(shù)據(jù)方便在網(wǎng)絡(luò)上傳輸和在硬盤上存儲。
反序列化:與序列化相反,是將二進(jìn)制數(shù)據(jù)流或者文本流轉(zhuǎn)換稱為易于處理和閱讀的數(shù)據(jù)結(jié)構(gòu)的過程。
本質(zhì)其實(shí)還是一種協(xié)議,一種數(shù)據(jù)格式,方便數(shù)據(jù)的存儲和傳輸。
10、對 Map 的用法,正確的有:
正確答案: C D
new java.util.Map().put(“key” , “value”) ;
new java.util.SortedMap().put(“key” , “value”) ;
new java.util.HashMap().put( null , null ) ;
new java.util.TreeMap().put( 0 , null ) ;
題解:
考察的是Map接口實(shí)現(xiàn)類的創(chuàng)建對象以及對象類型包含的方法。
A選項(xiàng)Map屬于接口類型,不可以new的方式創(chuàng)建對象。所以A錯誤。
B選項(xiàng)SortedMap屬于接口類型,不可以new的方式創(chuàng)建對象。所以B錯誤。
C選項(xiàng)HashMap基于哈希表實(shí)現(xiàn)Map接口的類,并允許null的值和null鍵。
D選項(xiàng)TreeMap通過紅黑樹實(shí)現(xiàn)Map接口的類,key不可以為null,會報(bào)NullPointerException異常,value可以為null。
答案匯總:
1、正確答案: D
2、正確答案: B
3、正確答案: C
4、正確答案: A
5、正確答案: C
6、正確答案: C
7、正確答案: D
8、正確答案: A C
9、正確答案: A B
10、正確答案: C D
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Java深入講解AWT實(shí)現(xiàn)事件處理流程
AWT的事件處理是一種委派式事件處理方式:普通組件(事件源)將整個(gè)事件處理委托給特定的對象(事件監(jiān)聽器);當(dāng)該事件源發(fā)生指定的事件時(shí),就通知所委托的事件監(jiān)聽器,由事件監(jiān)聽器來處理這個(gè)事件2022-04-04mybatis-generator-gui根據(jù)需求改動示例
這篇文章主要為大家介紹了mybatis-generator-gui根據(jù)需求改動示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09Spring Boot中使用 Spring Security 構(gòu)建權(quán)限系統(tǒng)的示例代碼
本篇文章主要介紹了Spring Boot中使用 Spring Security 構(gòu)建權(quán)限系統(tǒng)的示例代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08spring中@RestController和@Controller的區(qū)別小結(jié)
@RestController和@Controller這兩個(gè)注解用于創(chuàng)建Web應(yīng)用程序的控制器類,那么這兩個(gè)注解有哪些區(qū)別,本文就來介紹一下,并用示例代碼說明,感興趣的可以了解一下2023-09-09解決sharding JDBC 不支持批量導(dǎo)入問題
這篇文章主要介紹了解決sharding JDBC 不支持批量導(dǎo)入問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10Spring Boot2發(fā)布調(diào)用REST服務(wù)實(shí)現(xiàn)方法
這篇文章主要介紹了Spring Boot2發(fā)布調(diào)用REST服務(wù)實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04