Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(56)
承蒙各位厚愛(ài),我們一起每天進(jìn)步一點(diǎn)點(diǎn)?。ㄊ髽?biāo)選中空白處查看答案)
1、下面所示的java代碼,運(yùn)行時(shí),會(huì)產(chǎn)生()類型的異常
int Arry_a[] = new int[10];
System.out.println(Arry_a[10]);
正確答案: D
ArithmeticException
NullPointException
IOException
ArrayIndexOutOfBoundsException
題解:
定義的數(shù)組長(zhǎng)度為10,角標(biāo)即為0-9 訪問(wèn)數(shù)組角標(biāo)10會(huì)出現(xiàn)數(shù)組角標(biāo)越界異常 ArithmeticException 算術(shù)異常 NullPointException 空指針異常 IOException IO異常 ArrayIndexOutOfBoundsException 數(shù)組下標(biāo)越界異常
2、關(guān)于依賴注入,下列選項(xiàng)中說(shuō)法錯(cuò)誤的是()
正確答案: B
依賴注入能夠獨(dú)立開(kāi)發(fā)各組件,然后根據(jù)組件間關(guān)系進(jìn)行組裝
依賴注入使組件之間相互依賴,相互制約
依賴注入提供使用接口編程
依賴注入指對(duì)象在使用時(shí)動(dòng)態(tài)注入
題解:
依賴注入的動(dòng)機(jī)就是減少組件之間的耦合度,使開(kāi)發(fā)更為簡(jiǎn)潔
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)代碼塊
題解:
會(huì)先執(zhí)行靜態(tài)代碼塊,因?yàn)殪o態(tài)代碼塊是類級(jí)別的,是在創(chuàng)建對(duì)象之前就執(zhí)行的。因?yàn)樽宇惱^承了父類,所以父類的靜態(tài)代碼塊會(huì)先執(zhí)行,接著執(zhí)行子類的靜態(tài)代碼塊。
因?yàn)闃?gòu)造函數(shù)可能要給動(dòng)態(tài)代碼塊的一些成員變量賦值,所以必須在這之前先執(zhí)行動(dòng)態(tài)代碼塊,要不然構(gòu)造函數(shù)會(huì)出現(xiàn)相關(guān)的成員屬性無(wú)定義。所以會(huì)先執(zhí)行動(dòng)態(tài)代碼塊,在執(zhí)行構(gòu)造函數(shù)。一般先按父類的執(zhí)行,再按子類的執(zhí)行。
4、以下代碼在編譯和運(yùn)行過(guò)程中會(huì)出現(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)行通過(guò),輸出結(jié)果是88
編譯時(shí)錯(cuò)誤,count變量定義的是私有變量
編譯時(shí)錯(cuò)誤,System.out.println方法被調(diào)用時(shí)test沒(méi)有被初始化
編譯和執(zhí)行時(shí)沒(méi)有輸出結(jié)果
題解:
private是私有變量,只能用于當(dāng)前類中,題目中的main方法也位于當(dāng)前類,所以可以正確輸出
5、Web程序中,當(dāng)前用戶上下文信息應(yīng)該保存在下面哪個(gè)對(duì)象中()
正確答案: C
page
request
session
Application
題解:
當(dāng)前用戶上下文信息:session
appication:當(dāng)前應(yīng)用
pageContext:當(dāng)前頁(yè)面
request:當(dāng)前請(qǐng)求
6、下面哪個(gè)不屬于HttpServletResponse接口完成的功能?
正確答案: C
設(shè)置HTTP頭標(biāo)
設(shè)置cookie
讀取路徑信息
輸出返回?cái)?shù)據(jù)
題解:
request讀取路徑信息
7、以下說(shuō)法錯(cuò)誤的是()
正確答案: D
虛擬機(jī)中沒(méi)有泛型,只有普通類和普通方法
所有泛型類的類型參數(shù)在編譯時(shí)都會(huì)被擦除
創(chuàng)建泛型對(duì)象時(shí)請(qǐng)指明類型,讓編譯器盡早的做參數(shù)檢查
泛型的類型擦除機(jī)制意味著不能在運(yùn)行時(shí)動(dòng)態(tài)獲取List中T的實(shí)際類型
題解:
1、創(chuàng)建泛型對(duì)象的時(shí)候,一定要指出類型變量T的具體類型。爭(zhēng)取讓編譯器檢查出錯(cuò)誤,而不是留給JVM運(yùn)行的時(shí)候拋出類不匹配的異常。 2、JVM如何理解泛型概念 —— 類型擦除。事實(shí)上,JVM并不知道泛型,所有的泛型在編譯階段就已經(jīng)被處理成了普通類和方法。 處理方法很簡(jiǎn)單,我們叫做類型變量T的擦除(erased) 。 總結(jié):泛型代碼與JVM ① 虛擬機(jī)中沒(méi)有泛型,只有普通類和方法。 ② 在編譯階段,所有泛型類的類型參數(shù)都會(huì)被Object或者它們的限定邊界來(lái)替換。(類型擦除) ③ 在繼承泛型類型的時(shí)候,橋方法的合成是為了避免類型變量擦除所帶來(lái)的多態(tài)災(zāi)難。 無(wú)論我們?nèi)绾味x一個(gè)泛型類型,相應(yīng)的都會(huì)有一個(gè)原始類型被自動(dòng)提供。原始類型的名字就是擦除類型參數(shù)的泛型類型的名字。
8、類B從類A派生,則類B可以訪問(wèn)類A中的( )成員?
正確答案: A C
public成員
private成員
protected成員
所有數(shù)據(jù)成員
所有函數(shù)成員
題解:
private成員只能在當(dāng)前類中訪問(wèn),派生類可以訪問(wèn)父類的public和protected屬性成員
9、下列關(guān)于系列化和反序列化描述正確的是:
正確答案: A B
序列化是將數(shù)據(jù)轉(zhuǎn)為n個(gè) byte序列的過(guò)程
反序列化是將n個(gè) byte轉(zhuǎn)換為數(shù)據(jù)的過(guò)程
將類型int轉(zhuǎn)換為4 byte是反序列化過(guò)程
將8個(gè)字節(jié)轉(zhuǎn)換為long類型的數(shù)據(jù)為序列化過(guò)程
題解:
序列化:將數(shù)據(jù)結(jié)構(gòu)轉(zhuǎn)換稱為二進(jìn)制數(shù)據(jù)流或者文本流的過(guò)程。序列化后的數(shù)據(jù)方便在網(wǎng)絡(luò)上傳輸和在硬盤(pán)上存儲(chǔ)。
反序列化:與序列化相反,是將二進(jìn)制數(shù)據(jù)流或者文本流轉(zhuǎn)換稱為易于處理和閱讀的數(shù)據(jù)結(jié)構(gòu)的過(guò)程。
本質(zhì)其實(shí)還是一種協(xié)議,一種數(shù)據(jù)格式,方便數(shù)據(jù)的存儲(chǔ)和傳輸。
10、對(duì) 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)建對(duì)象以及對(duì)象類型包含的方法。
A選項(xiàng)Map屬于接口類型,不可以new的方式創(chuàng)建對(duì)象。所以A錯(cuò)誤。
B選項(xiàng)SortedMap屬于接口類型,不可以new的方式創(chuàng)建對(duì)象。所以B錯(cuò)誤。
C選項(xiàng)HashMap基于哈希表實(shí)現(xiàn)Map接口的類,并允許null的值和null鍵。
D選項(xiàng)TreeMap通過(guò)紅黑樹(shù)實(shí)現(xiàn)Map接口的類,key不可以為null,會(huì)報(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é)
本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Java中實(shí)現(xiàn)WebSocket方法詳解
這篇文章主要介紹了Java中實(shí)現(xiàn)WebSocket方法詳解,WebSocket?是一種新型的網(wǎng)絡(luò)協(xié)議,它允許客戶端和服務(wù)器之間進(jìn)行雙向通信,可以實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)交互,需要的朋友可以參考下2023-07-07
新手了解java 數(shù)組基礎(chǔ)知識(shí)
這篇文章主要介紹了Java 數(shù)組分析及簡(jiǎn)單實(shí)例的相關(guān)資料,在Java中它就是對(duì)象,一個(gè)比較特殊的對(duì)象,需要的朋友可以參考下,希望可以對(duì)你有所幫助2021-07-07
Serializable接口的作用_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要為大家詳細(xì)介紹了java中Serializable接口的作用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05
使用Spring-Retry解決Spring Boot應(yīng)用程序中的重試問(wèn)題
重試的使用場(chǎng)景比較多,比如調(diào)用遠(yuǎn)程服務(wù)時(shí),由于網(wǎng)絡(luò)或者服務(wù)端響應(yīng)慢導(dǎo)致調(diào)用超時(shí),此時(shí)可以多重試幾次。用定時(shí)任務(wù)也可以實(shí)現(xiàn)重試的效果,但比較麻煩,用Spring Retry的話一個(gè)注解搞定所有,感興趣的可以了解一下2023-04-04
SpringMVC框架整合Junit進(jìn)行單元測(cè)試(案例詳解)
本文詳細(xì)介紹在SpringMVC任何使用Junit框架。首先介紹了如何引入依賴,接著介紹了編寫(xiě)一個(gè)測(cè)試基類,并且對(duì)其中涉及的各個(gè)注解做了一個(gè)詳細(xì)說(shuō)明,感興趣的朋友跟隨小編一起看看吧2021-05-05

