Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(20)
承蒙各位厚愛,我們一起每天進(jìn)步一點(diǎn)點(diǎn)?。ㄊ髽?biāo)選中空白處查看答案)
1、如何跳出Array的forEach循環(huán)?( )
正確答案: A
break
return true
return false
以上都不是
題解:
送分題,break
2、對(duì)抽象類的描述正確的是()
正確答案: D
抽象類的方法都是抽象方法
一個(gè)類可以繼承多個(gè)抽象類
抽象類不能有構(gòu)造方法
抽象類不能被實(shí)例化
題解:
A.抽象類也可以有非抽象的方法,而接口中的方法都是抽象方法
B.java中類只能單繼承,接口可以‘繼承'多個(gè)接口
C.抽象類必須有構(gòu)造方法,接口一定沒有構(gòu)造方法
D.實(shí)例化一般指new一個(gè)對(duì)象,所以抽象類不能實(shí)例化
3、類方法中可以直接調(diào)用對(duì)象變量。( )
正確答案: B
正確
錯(cuò)誤
題解:
靜態(tài)方法中不能調(diào)用對(duì)象的變量,因?yàn)殪o態(tài)方法在類加載時(shí)就初始化,對(duì)象變量需要在新建對(duì)象后才能使用
4、如果一個(gè)接口Cow有個(gè)方法drink(),有個(gè)類Calf實(shí)現(xiàn)接口Cow,則在類Calf中正確的是? ( )
正確答案: C
void drink() { …}
protected void drink() { …}
public void drink() { …}
以上語句都可以用在類Calf中
題解:
子類重寫父類方法時(shí),方法的訪問權(quán)限不能小于原訪問權(quán)限,在接口中,方法的默認(rèn)權(quán)限就是public,所以子類重寫后只能是public
5、內(nèi)部類(也叫成員內(nèi)部類)可以有4種訪問權(quán)限。( )
正確答案: A
正確
錯(cuò)誤
題解:
你就把內(nèi)部類理解成類的成員,成員有4種訪問權(quán)限吧,內(nèi)部類也是!分別為private、protected、public以及默認(rèn)的訪問權(quán)限
6、下面代碼的運(yùn)行結(jié)果是()
public static void main(String[] args){
String s;
System.out.println(“s=”+s);
}
正確答案: C
代碼編程成功,并輸出”s=”
代碼編譯成功,并輸出”s=null”
由于String s沒有初始化,代碼不能編譯通過。
代碼編譯成功,但捕獲到NullPointException異常
題解:
成員變量有初始值,而局部變量沒有初始值得。本體中的s定義在方法中所以為局部變量沒有初始值。變量沒有初始值就使用了,編譯通不過,敲代碼的時(shí)候就能發(fā)現(xiàn)不初始化使用時(shí)就是紅的錯(cuò)誤提示。
7、關(guān)鍵字super的作用是?
正確答案: D
用來訪問父類被隱藏的非私有成員變量
用來調(diào)用父類中被重寫的方法
用來調(diào)用父類的構(gòu)造函數(shù)
以上都是
題解:
全是
8、下面程序運(yùn)行完之后,t2與t3的關(guān)系為()
Object obj=new Object(); List aList=new ArrayList(); List bList=new LinkedList(); long t1=System.currentTimeMillis(); for(int i=0;i<50000;i++){ aList.add(0,obj); } long t2=System.currentTimeMillis()-t1; t1=System.currentTimeMillis(); for(int i=0;i<50000;i++){ bList.add(0,obj); } long t3=System.currentTimeMillis()-t1;
正確答案: D
t2
t2=t3
不確定
t2>t3
題解:
此題考察的是ArrayList和LinkedList的特征:同樣是新增5000個(gè)對(duì)象,LinkedLIst比ArrayList更快
ArrayList:增刪慢,查詢快。
由于是數(shù)據(jù)組實(shí)現(xiàn),需要連續(xù)的內(nèi)存空間,如果刪除數(shù)組中間的值,為了保證下標(biāo)的有效性,需要將后面的數(shù)據(jù)往前移,所以刪除慢。
當(dāng)插入A對(duì)象到B對(duì)象的前面時(shí),需要將B對(duì)象和B對(duì)象之后的所有對(duì)象后移一位,再插入A對(duì)象。所以插入慢。
數(shù)組的大小是固定的,如果數(shù)組滿了,需要重新分配空間,new一個(gè)新數(shù)組并copy舊數(shù)據(jù)之后再增加新數(shù)據(jù),所以增加慢。
因?yàn)槭沁B續(xù)內(nèi)存空間,可以通過下標(biāo)查詢數(shù)據(jù),所以查詢快。
LInkedList:增刪快,查詢慢。
由于是鏈表實(shí)現(xiàn),當(dāng)前節(jié)點(diǎn)的next指向下一個(gè)節(jié)點(diǎn),prev指向上一個(gè)節(jié)點(diǎn),不需要連續(xù)的內(nèi)存空間,所以增刪快。
因?yàn)椴皇沁B續(xù)內(nèi)存空間,所以不能使用下標(biāo)查詢,只能通過next遍歷,所以查詢慢。
9、下列不屬于Java語言性特點(diǎn)的是
正確答案: D
Java致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤
Java能運(yùn)行虛擬機(jī)實(shí)現(xiàn)跨平臺(tái)
Java自己操縱內(nèi)存減少了內(nèi)存出錯(cuò)的可能性
Java還實(shí)現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)類型的可能
題解:
Java致力于檢查程序在編譯和運(yùn)行時(shí)的錯(cuò)誤。
Java虛擬機(jī)實(shí)現(xiàn)了跨平臺(tái)接口
類型檢查幫助檢查出許多開發(fā)早期出現(xiàn)的錯(cuò)誤。
Java自己操縱內(nèi)存減少了內(nèi)存出錯(cuò)的可能性。
Java還實(shí)現(xiàn)了真數(shù)組,避免了覆蓋數(shù)據(jù)的可能。
注意,是避免數(shù)據(jù)覆蓋的可能,而不是數(shù)據(jù)覆蓋類型
10、下面哪個(gè)行為被打斷不會(huì)導(dǎo)致InterruptedException:( )
正確答案: E
Thread.join
Thread.sleep
Object.wait
CyclicBarrier.await
Thread.suspend
題解:
拋InterruptedException的代表方法有:
java.lang.Object 類的 wait 方法
java.lang.Thread 類的 sleep 方法
java.lang.Thread 類的 join 方法
當(dāng)線程在活動(dòng)之前或活動(dòng)期間處于正在等待、休眠或占用狀態(tài)且該線程被中斷時(shí),拋出該異常。
對(duì)于常見的ABC選項(xiàng)都有說明,對(duì)于D,CyclicBarrier是一個(gè)屏障類,它的await方法可以簡(jiǎn)單的理解為:等待多個(gè)線程同時(shí)到達(dá)之后才能繼續(xù)進(jìn)行,在此之前它就是這些線程的屏障,線程不能繼續(xù)進(jìn)行,而對(duì)于失敗的同步嘗試,CyclicBarrier 使用了一種要么全部要么全不 (all-or-none) 的破壞模式:如果因?yàn)橹袛?、失敗或者超時(shí)等原因,導(dǎo)致線程過早地離開了屏障點(diǎn),那么在該屏障點(diǎn)等待的其他所有線程也將通過 BrokenBarrierException(如果它們幾乎同時(shí)被中斷,則用 interruptedException)以反常的方式離開。因此它被中斷也是可以拋出interruptedException的,如果還是不清楚,查看一下JavaAPI,對(duì)于這個(gè)類介紹的清清楚楚。
答案匯總:
1、正確答案: A
2、正確答案: D
3、正確答案: B
4、正確答案: C
5、正確答案: A
6、正確答案: C
7、正確答案: D
8、正確答案: D
9、正確答案: D
10、正確答案: E
總結(jié)
本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
詳解Spring Cloud Zuul中路由配置細(xì)節(jié)
本篇文章主要介紹了詳解Spring Cloud Zuul中路由配置細(xì)節(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10java使用MulticastSocket實(shí)現(xiàn)組播
這篇文章主要為大家詳細(xì)介紹了java使用MulticastSocket實(shí)現(xiàn)組播,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01Spring Boot 集成Mybatis實(shí)現(xiàn)主從(多數(shù)據(jù)源)分離方案示例
本篇文章主要介紹了Spring Boot 集成Mybatis實(shí)現(xiàn)主從(多數(shù)據(jù)源)分離方案實(shí)例,具有一定的參考價(jià)值,有興趣的可以了解一下。2017-03-03幾個(gè)好用Maven鏡像倉(cāng)庫(kù)地址(小結(jié))
這篇文章主要介紹了幾個(gè)好用Maven鏡像倉(cāng)庫(kù)地址(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09mybatis plus generator 根據(jù)數(shù)據(jù)庫(kù)自動(dòng)生成實(shí)體類的實(shí)現(xiàn)示例
本文主要介紹了mybatis plus generator 根據(jù)數(shù)據(jù)庫(kù)自動(dòng)生成實(shí)體類的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09Java集合中獲取數(shù)據(jù)前驅(qū)和后繼元素的實(shí)現(xiàn)
使用一致性hash時(shí),如何找到一個(gè)hash值對(duì)應(yīng)的臨近節(jié)點(diǎn),可以使用集合中獲取數(shù)據(jù)的前驅(qū)和后繼元素實(shí)現(xiàn),所以本文給大家介紹了Java集合中獲取數(shù)據(jù)前驅(qū)和后繼元素的實(shí)現(xiàn),文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-05-05Java中FTPClient上傳中文目錄、中文文件名亂碼問題解決方法
這篇文章主要介紹了Java中FTPClient上傳中文目錄、中文文件名亂碼問題解決方法,本文使用apache-commons-net工具包時(shí)遇到這個(gè)問題,解決方法很簡(jiǎn)單,需要的朋友可以參考下2015-05-05詳解java集成支付寶支付接口(JSP+支付寶20160912)
本篇文章主要介紹了java集成支付寶支付接口,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-12-12