版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2025年計(jì)算機(jī)計(jì)算機(jī)二級(jí)公共基礎(chǔ)[公用]-Java語(yǔ)言程序設(shè)計(jì)參考題庫(kù)含答案解析一、單選題(共35題)1.下列關(guān)于Java中多態(tài)性的說(shuō)法,正確的是?【選項(xiàng)】A.多態(tài)性?xún)H體現(xiàn)在方法重載上B.通過(guò)父類(lèi)引用調(diào)用子類(lèi)重寫(xiě)方法時(shí),實(shí)際執(zhí)行的是父類(lèi)的方法C.多態(tài)性的實(shí)現(xiàn)需要依賴(lài)?yán)^承和方法重寫(xiě)D.私有方法(private修飾)也可以實(shí)現(xiàn)多態(tài)性【參考答案】C【解析】A錯(cuò)誤:多態(tài)性包含編譯時(shí)多態(tài)(方法重載)和運(yùn)行時(shí)多態(tài)(方法重寫(xiě))。B錯(cuò)誤:父類(lèi)引用調(diào)用子類(lèi)重寫(xiě)方法時(shí)執(zhí)行的是子類(lèi)方法。C正確:運(yùn)行時(shí)多態(tài)需借助繼承關(guān)系和方法重寫(xiě)實(shí)現(xiàn)。D錯(cuò)誤:私有方法不可被重寫(xiě),也不參與多態(tài)。2.以下關(guān)于final關(guān)鍵字的描述,錯(cuò)誤的是?【選項(xiàng)】A.final修飾的類(lèi)不能被繼承B.final修飾的方法可以被重載但不能被重寫(xiě)C.final修飾的變量必須在聲明時(shí)初始化D.final修飾的引用類(lèi)型變量可以修改其指向?qū)ο蟮膬?nèi)容【參考答案】C【解析】C錯(cuò)誤:final修飾的成員變量可以在聲明時(shí)或構(gòu)造方法中初始化。A正確:final類(lèi)不可繼承。B正確:final方法可重載(相同類(lèi)中同名不同參)但不可重寫(xiě)。D正確:final引用變量不可更改指向,但其指向?qū)ο蟮膬?nèi)容可改。3.下列代碼的輸出結(jié)果是?```javapublicclassTest{publicstaticvoidmain(String[]args){Listlist=newArrayList<>();list.add("A");list.add("B");list.add(1,"C");System.out.println(list.get(1));}}```【選項(xiàng)】A.AB.BC.CD.拋出IndexOutOfBoundsException【參考答案】C【解析】ArrayList的add(index,element)方法在指定索引插入元素。初始添加順序:索引0="A",然后添加"B"到索引1;執(zhí)行add(1,"C")時(shí),原索引1的"B"后移,索引1變?yōu)?C"。因此get(1)返回"C"。4.下列關(guān)于接口的說(shuō)法,正確的是?【選項(xiàng)】A.接口中的方法默認(rèn)是publicabstract的B.接口中可以包含構(gòu)造方法C.接口中的變量默認(rèn)是finalstatic的D.Java8后允許接口定義靜態(tài)方法但不允許默認(rèn)方法【參考答案】C【解析】A錯(cuò)誤:接口方法默認(rèn)publicabstract(Java8前)。B錯(cuò)誤:接口無(wú)構(gòu)造方法。C正確:接口變量默認(rèn)publicstaticfinal。D錯(cuò)誤:Java8允許接口定義靜態(tài)方法和默認(rèn)方法(default修飾)。5.以下異常處理代碼執(zhí)行后的輸出是?```javapublicclassExceptionTest{publicstaticvoidmain(String[]args){try{System.out.print("A");intnum=5/0;System.out.print("B");}catch(ArithmeticExceptione){System.out.print("C");}catch(Exceptione){System.out.print("D");}finally{System.out.print("E");}}}```【選項(xiàng)】A.ACDB.ACEC.ADED.ABCE【參考答案】B【解析】執(zhí)行流程:①輸出"A";②5/0觸發(fā)ArithmeticException;③跳轉(zhuǎn)匹配的catch(ArithmeticException)輸出"C";④finally必執(zhí)行輸出"E"。"B"未執(zhí)行,因異常中斷流程。注意:多個(gè)catch需從小到大排列,否則編譯錯(cuò)誤。6.下列關(guān)于類(lèi)的初始化順序,正確的是?【選項(xiàng)】A.靜態(tài)代碼塊→實(shí)例代碼塊→構(gòu)造方法→main方法B.main方法→靜態(tài)代碼塊→實(shí)例代碼塊→構(gòu)造方法C.靜態(tài)代碼塊→main方法→實(shí)例代碼塊→構(gòu)造方法D.main方法→構(gòu)造方法→實(shí)例代碼塊→靜態(tài)代碼塊【參考答案】C【解析】類(lèi)加載時(shí)先執(zhí)行靜態(tài)代碼塊;主類(lèi)執(zhí)行main方法時(shí)觸發(fā)對(duì)象創(chuàng)建,接著執(zhí)行實(shí)例代碼塊和構(gòu)造方法。典型順序:①父類(lèi)靜態(tài)塊→②子類(lèi)靜態(tài)塊→③父類(lèi)實(shí)例塊/構(gòu)造→④子類(lèi)實(shí)例塊/構(gòu)造。7.關(guān)于String和StringBuilder的操作結(jié)果,正確的是?【選項(xiàng)】A.`Strings="HE";s+="LLO";`總共創(chuàng)建2個(gè)對(duì)象B.`StringBuildersb=newStringBuilder("AB");sb.append("CD");`總共創(chuàng)建1個(gè)對(duì)象C.`newString("Java").intern()=="Java"`的返回值為falseD.`StringBuilder`的`reverse()`方法會(huì)改變自身內(nèi)容并返回新對(duì)象【參考答案】A【解析】A正確:"HE"常量池1個(gè),+=時(shí)new新String對(duì)象共2個(gè)。B錯(cuò)誤:newStringBuilder("AB")創(chuàng)建2個(gè)對(duì)象(String常量和StringBuilder對(duì)象),append不創(chuàng)建新對(duì)象。C錯(cuò)誤:intern()返回常量池引用,故為true。D錯(cuò)誤:reverse()修改自身并返回this。8.當(dāng)線(xiàn)程調(diào)用以下哪個(gè)方法后,會(huì)進(jìn)入"就緒"狀態(tài)?【選項(xiàng)】A.wait()B.sleep(1000)C.notify()D.yield()【參考答案】D【解析】A:wait()使線(xiàn)程進(jìn)入等待池。B:sleep()進(jìn)入定時(shí)等待。C:notify()喚醒其他線(xiàn)程,自身繼續(xù)執(zhí)行。D:yield()讓出CPU進(jìn)入就緒狀態(tài),可能立即重新獲得執(zhí)行。注意:start()后進(jìn)入就緒態(tài),但選項(xiàng)中未出現(xiàn)。9.下列代碼的輸出結(jié)果是?```javapublicclassPassTest{publicstaticvoidchange(intx,StringBuildersb){x=20;sb.append("World");}publicstaticvoidmain(String[]args){inta=10;StringBuilderstr=newStringBuilder("Hello");change(a,str);System.out.print(a+","+str);}}```【選項(xiàng)】A.10,HelloB.20,HelloWorldC.10,HelloWorldD.20,Hello【參考答案】C【解析】Java參數(shù)傳遞是值傳遞:①基本類(lèi)型a的副本傳入change(),修改不影響原值,故a=10。②引用類(lèi)型str的地址值副本傳入,sb.append修改堆內(nèi)存內(nèi)容,所以str變?yōu)?HelloWorld"。10.下列會(huì)被垃圾回收器回收的情況是?【選項(xiàng)】A.對(duì)象通過(guò)局部變量直接引用B.對(duì)象被靜態(tài)變量引用C.對(duì)象通過(guò)強(qiáng)引用(StrongReference)鏈無(wú)法到達(dá)D.對(duì)象僅被軟引用(SoftReference)引用且內(nèi)存充足【參考答案】C【解析】C正確:不可達(dá)對(duì)象是GC回收目標(biāo)。A錯(cuò)誤:局部變量引用的對(duì)象在執(zhí)行期間可達(dá)。B錯(cuò)誤:靜態(tài)變量生命周期與類(lèi)相同。D錯(cuò)誤:軟引用對(duì)象在內(nèi)存不足時(shí)才被回收。注意:弱引用(WeakReference)無(wú)論內(nèi)存是否充足都會(huì)被回收。11.在Java中,若父類(lèi)Parent定義了一個(gè)非靜態(tài)方法voiddisplay(),子類(lèi)Child重寫(xiě)該方法。代碼片段如下:Parentp=newChild();p.display();關(guān)于方法調(diào)用的描述,正確的是:【選項(xiàng)】A.編譯時(shí)檢查Parent類(lèi)是否有display()方法,運(yùn)行時(shí)執(zhí)行Child類(lèi)的display()B.編譯時(shí)檢查Child類(lèi)是否有display()方法,運(yùn)行時(shí)執(zhí)行Parent類(lèi)的display()C.編譯時(shí)和運(yùn)行時(shí)均檢查Parent類(lèi)的display()方法D.編譯時(shí)檢查Child類(lèi)的display()方法,運(yùn)行時(shí)根據(jù)實(shí)際對(duì)象類(lèi)型執(zhí)行【參考答案】A【解析】1.Java的多態(tài)機(jī)制通過(guò)動(dòng)態(tài)綁定實(shí)現(xiàn),編譯時(shí)檢查引用類(lèi)型(Parent)是否包含目標(biāo)方法(display())。2.運(yùn)行時(shí)根據(jù)實(shí)際對(duì)象類(lèi)型(Child)確定調(diào)用哪個(gè)類(lèi)的方法。3.選項(xiàng)B、D混淆了編譯時(shí)和運(yùn)行時(shí)的檢查對(duì)象;選項(xiàng)C忽略了運(yùn)行時(shí)動(dòng)態(tài)綁定的特性。12.下列關(guān)于Java異常處理的描述,錯(cuò)誤的是:【選項(xiàng)】A.finally塊中的代碼無(wú)論是否發(fā)生異常都會(huì)執(zhí)行B.一個(gè)try塊可以跟隨多個(gè)catch塊處理不同類(lèi)型的異常C.catch塊的異常類(lèi)型應(yīng)遵循從子類(lèi)到父類(lèi)的順序排列D.若try和finally塊均有return語(yǔ)句,finally中的return會(huì)覆蓋try中的返回值【參考答案】C【解析】1.catch塊應(yīng)按照異常類(lèi)繼承關(guān)系從子類(lèi)到父類(lèi)排列(正確順序),若父類(lèi)在前會(huì)屏蔽子類(lèi)異常捕獲,故C錯(cuò)誤。2.A、B描述符合異常處理機(jī)制;D中finally的return優(yōu)先級(jí)更高是Java規(guī)范。13.以下關(guān)于A(yíng)rrayList和LinkedList操作的性能比較,正確的是:【選項(xiàng)】A.在尾部插入元素時(shí),ArrayList時(shí)間復(fù)雜度為O(1),LinkedList為O(n)B.隨機(jī)訪(fǎng)問(wèn)第i個(gè)元素時(shí),ArrayList時(shí)間復(fù)雜度為O(1),LinkedList為O(n)C.刪除中間位置元素時(shí),ArrayList和LinkedList的時(shí)間復(fù)雜度均為O(1)D.LinkedList在內(nèi)存占用上始終小于A(yíng)rrayList【參考答案】B【解析】1.ArrayList基于數(shù)組實(shí)現(xiàn),支持O(1)隨機(jī)訪(fǎng)問(wèn),但插入/刪除元素可能需移動(dòng)數(shù)據(jù);LinkedList基于雙向鏈表,隨機(jī)訪(fǎng)問(wèn)需遍歷,時(shí)間復(fù)雜度O(n)。2.A錯(cuò)誤:LinkedList尾部插入為O(1);C錯(cuò)誤:ArrayList刪除元素平均為O(n);D錯(cuò)誤:LinkedList需存儲(chǔ)前后節(jié)點(diǎn)引用,內(nèi)存占用不一定更小。14.下列代碼的輸出結(jié)果是:```javaStrings1="Java";Strings2=newString("Java");System.out.print((s1==s2)+""+s1.equals(s2));```【選項(xiàng)】A.truetrueB.falsetrueC.truefalseD.falsefalse【參考答案】B【解析】1."=="比較對(duì)象內(nèi)存地址:s1指向字符串常量池中的對(duì)象,s2指向堆中新創(chuàng)建的對(duì)象,二者地址不同。2.equals()比較字符串內(nèi)容,"Java"與"Java"內(nèi)容相同,返回true。15.關(guān)于Java線(xiàn)程同步,下列說(shuō)法正確的是:【選項(xiàng)】A.synchronized關(guān)鍵字可修飾靜態(tài)方法和非靜態(tài)方法,鎖對(duì)象分別為類(lèi)實(shí)例和Class對(duì)象B.volatile關(guān)鍵字能保證復(fù)合操作(如i++)的原子性C.wait()和notify()方法必須在synchronized代碼塊外部調(diào)用D.線(xiàn)程調(diào)用sleep()方法時(shí)會(huì)釋放持有的鎖【參考答案】A【解析】1.synchronized修飾非靜態(tài)方法鎖當(dāng)前對(duì)象實(shí)例,修飾靜態(tài)方法鎖Class對(duì)象(A正確)。2.volatile僅保證可見(jiàn)性和有序性,不保證原子性(B錯(cuò)誤);wait()/notify()必須在synchronized塊內(nèi)調(diào)用(C錯(cuò)誤);sleep()不釋放鎖(D錯(cuò)誤)。16.以下關(guān)于JavaIO流的描述,錯(cuò)誤的是:【選項(xiàng)】A.FileInputStream用于讀取二進(jìn)制文件B.BufferedReader提供了按行讀取文本的方法C.ObjectOutputStream可將對(duì)象序列化后寫(xiě)入文件D.FileWriter默認(rèn)使用UTF-8編碼寫(xiě)入字符【參考答案】D【解析】1.FileWriter使用平臺(tái)默認(rèn)編碼(非強(qiáng)制UTF-8),D錯(cuò)誤。2.A、B、C分別正確描述字節(jié)流、緩沖流和對(duì)象序列化的特性。17.泛型類(lèi)定義:`classBox{privateTdata;...}`,以下操作會(huì)導(dǎo)致編譯錯(cuò)誤的是:【選項(xiàng)】A.Boxbox=newBox<>();B.Boxbox=newBox();C.Boxbox=newBox();D.Boxbox=newBox();【參考答案】B【解析】1.泛型賦值需滿(mǎn)足類(lèi)型完全匹配或通配符協(xié)變(如C、D),B中Box與Box無(wú)繼承關(guān)系,違反類(lèi)型安全。2.A使用菱形語(yǔ)法合法;C、D通過(guò)通配符實(shí)現(xiàn)泛型協(xié)變。18.在JDBC編程中,Statement與PreparedStatement的主要區(qū)別是:【選項(xiàng)】A.Statement不支持批量操作,PreparedStatement支持B.PreparedStatement可預(yù)編譯SQL,防止SQL注入C.Statement只能執(zhí)行查詢(xún),PreparedStatement可執(zhí)行更新D.PreparedStatement不能設(shè)置參數(shù)類(lèi)型【參考答案】B【解析】1.PreparedStatement通過(guò)參數(shù)化查詢(xún)預(yù)編譯SQL,避免注入攻擊(B正確)。2.兩者均支持批量操作(A錯(cuò)誤);均可執(zhí)行增刪改查(C錯(cuò)誤);PreparedStatement可使用setXxx()設(shè)置參數(shù)類(lèi)型(D錯(cuò)誤)。19.關(guān)于Java接口和抽象類(lèi),正確的是:【選項(xiàng)】A.接口中所有方法默認(rèn)是publicabstract的B.抽象類(lèi)可以有構(gòu)造方法而接口不能C.接口允許定義默認(rèn)方法(defaultmethod)D.以上全部正確【參考答案】D【解析】1.接口方法默認(rèn)publicabstract(A正確);抽象類(lèi)可以有構(gòu)造器(B正確);Java8起接口支持default方法(C正確)。20.以下代碼的輸出結(jié)果是:```javapublicclassTest{staticintx=10;publicstaticvoidmain(String[]args){intx=20;System.out.print(x+Test.x);}}```【選項(xiàng)】A.10B.20C.30D.編譯錯(cuò)誤【參考答案】C【解析】1.局部變量x=20,靜態(tài)變量Test.x=10,相加結(jié)果為30。2.注意作用域規(guī)則:局部變量?jī)?yōu)先于類(lèi)變量,但可通過(guò)類(lèi)名顯式訪(fǎng)問(wèn)靜態(tài)變量。21.在Java中,下列關(guān)于基本數(shù)據(jù)類(lèi)型和包裝類(lèi)的說(shuō)法,錯(cuò)誤的是?A.int的默認(rèn)值是0,Integer的默認(rèn)值是nullB.自動(dòng)裝箱是編譯器將基本類(lèi)型轉(zhuǎn)換為對(duì)應(yīng)的包裝類(lèi)對(duì)象C."Integera=127;Integerb=127;"中,a==b的比較結(jié)果為trueD."Doubled1=100.0;Doubled2=100.0;"中,d1==d2的比較結(jié)果為true【選項(xiàng)】A.選項(xiàng)AB.選項(xiàng)BC.選項(xiàng)CD.選項(xiàng)D【參考答案】D【解析】D選項(xiàng)錯(cuò)誤。Double類(lèi)沒(méi)有緩存機(jī)制,因此"Doubled1=100.0;Doubled2=100.0;"會(huì)創(chuàng)建兩個(gè)獨(dú)立對(duì)象,d1==d2比較的是對(duì)象地址,結(jié)果為false。A選項(xiàng)正確,基本數(shù)據(jù)類(lèi)型有默認(rèn)值,包裝類(lèi)默認(rèn)值為null。B選項(xiàng)正確,自動(dòng)裝箱是編譯器行為。C選項(xiàng)正確,Integer對(duì)-128~127的數(shù)值有緩存,故a和b指向同一對(duì)象。22.以下關(guān)于String類(lèi)的代碼輸出是什么?```javaStrings1="Java";Strings2=newString("Java");Strings3=ern();System.out.println(s1==s2);System.out.println(s1==s3);```A.falsetrueB.truefalseC.falsefalseD.truetrue【選項(xiàng)】A.選項(xiàng)AB.選項(xiàng)BC.選項(xiàng)CD.選項(xiàng)D【參考答案】A【解析】s1直接賦值,位于字符串常量池;s2通過(guò)new創(chuàng)建,指向堆中新對(duì)象,故s1==s2為false。s3調(diào)用intern()方法,返回常量池中"Java"的引用,與s1指向相同,故s1==s3為true。23.以下代碼體現(xiàn)的多態(tài)性中,輸出結(jié)果是什么?```javaclassParent{publicvoidprint(){System.out.println("Parent");}privatevoidshow(){System.out.println("Parent-show");}}classChildextendsParent{publicvoidprint(){System.out.println("Child");}publicvoidshow(){System.out.println("Child-show");}}publicclassTest{publicstaticvoidmain(String[]args){Parentp=newChild();p.print();//p.show();//編譯錯(cuò)誤}}```A.輸出"Child",編譯報(bào)錯(cuò)B.輸出"Parent",編譯報(bào)錯(cuò)C.輸出"Child",輸出"Child-show"D.編譯通過(guò),輸出"Parent"【選項(xiàng)】A.選項(xiàng)AB.選項(xiàng)BC.選項(xiàng)CD.選項(xiàng)D【參考答案】A【解析】p的運(yùn)行時(shí)類(lèi)型為Child,故p.print()調(diào)用子類(lèi)重寫(xiě)方法,輸出"Child"。Parent類(lèi)的show()是private方法,子類(lèi)無(wú)法重寫(xiě),且多態(tài)僅作用于可訪(fǎng)問(wèn)方法,因此p.show()因父類(lèi)私有方法不可見(jiàn)而編譯錯(cuò)誤。24.關(guān)于A(yíng)rrayList的初始容量和擴(kuò)容機(jī)制,下列說(shuō)法正確的是?A.默認(rèn)初始容量為10,擴(kuò)容時(shí)新容量為舊容量的1.5倍B.默認(rèn)初始容量為15,擴(kuò)容時(shí)新容量為舊容量的2倍C.默認(rèn)初始容量為空列表,首次添加元素時(shí)容量變?yōu)?0D.默認(rèn)初始容量為0,首次添加元素時(shí)容量變?yōu)?5【選項(xiàng)】A.選項(xiàng)AB.選項(xiàng)BC.選項(xiàng)CD.選項(xiàng)D【參考答案】C【解析】JDK中ArrayList無(wú)參構(gòu)造器創(chuàng)建的空列表初始容量為0(JDK8+),首次添加元素時(shí)擴(kuò)容為默認(rèn)容量10,之后按1.5倍擴(kuò)容。選項(xiàng)C描述準(zhǔn)確,選項(xiàng)A的初始容量描述適用于早期JDK版本(如JDK6)。25.以下異常處理代碼的輸出結(jié)果是什么?```javapublicclassTest{publicstaticvoidmain(String[]args){try{System.out.print("A");thrownewRuntimeException();}catch(Exceptione){System.out.print("B");return;}finally{System.out.print("C");}}}```A.ABCB.ABC.ACD.BC【選項(xiàng)】A.選項(xiàng)AB.選項(xiàng)BC.選項(xiàng)CD.選項(xiàng)D【參考答案】A【解析】執(zhí)行順序:try塊輸出"A"后拋出異常,進(jìn)入catch塊輸出"B",接著執(zhí)行finally塊輸出"C"。盡管catch中有return,finally仍會(huì)執(zhí)行,故輸出結(jié)果為ABC。26.以下關(guān)于Java文件操作的描述,錯(cuò)誤的是?A.FileInputStream用于讀取字節(jié)流,F(xiàn)ileReader用于讀取字符流B.使用BufferedReader包裝FileReader可以提高讀取效率C.newFileWriter("data.txt",true)的第二個(gè)參數(shù)表示追加寫(xiě)入D.File類(lèi)的delete()方法刪除文件時(shí),若文件被占用會(huì)拋出IOException【選項(xiàng)】A.選項(xiàng)AB.選項(xiàng)BC.選項(xiàng)CD.選項(xiàng)D【參考答案】D【解析】D錯(cuò)誤:File的delete()方法在文件被占用時(shí)返回false而非拋出IOException。A正確,字節(jié)流與字符流分類(lèi)正確。B正確,緩沖流提升效率。C正確,F(xiàn)ileWriter構(gòu)造參數(shù)true表示追加模式。27.下列關(guān)于接口和抽象類(lèi)的說(shuō)法,正確的是?A.接口可以有構(gòu)造方法,抽象類(lèi)不能有構(gòu)造方法B.接口中所有方法默認(rèn)是publicabstract的C.抽象類(lèi)可以包含非final的成員變量,接口中的變量默認(rèn)是final的D.接口可以繼承多個(gè)接口,抽象類(lèi)只能單繼承【選項(xiàng)】A.選項(xiàng)AB.選項(xiàng)BC.選項(xiàng)CD.選項(xiàng)D【參考答案】C【解析】C正確:抽象類(lèi)的變量可非final;接口變量默認(rèn)publicstaticfinal。A錯(cuò)誤:接口無(wú)構(gòu)造方法,抽象類(lèi)可以有。B錯(cuò)誤:接口方法默認(rèn)publicabstract(Java8),但非必須顯式聲明。D錯(cuò)誤:抽象類(lèi)單繼承類(lèi),但可實(shí)現(xiàn)多個(gè)接口。28.以下哪種數(shù)組聲明方式在Java中是合法的?A.int[]arr=newint[3]{1,2,3};B.intarr[]={1,2,3,};C.int[3]arr={1,2,3};D.int[]arr=newint[]{1,2,3};【選項(xiàng)】A.選項(xiàng)AB.選項(xiàng)BC.選項(xiàng)CD.選項(xiàng)D【參考答案】D【解析】D正確:匿名數(shù)組聲明語(yǔ)法正確。A錯(cuò)誤:同時(shí)指定長(zhǎng)度和初始化列表。B錯(cuò)誤:尾隨逗號(hào)在數(shù)組初始化中允許但不規(guī)范。C錯(cuò)誤:數(shù)組聲明時(shí)大小寫(xiě)在變量名后(如int[]arr)。29.下列關(guān)于集合框架的敘述,正確的是?A.HashSet通過(guò)compareTo()方法保證元素唯一性B.ArrayList的get(intindex)方法時(shí)間復(fù)雜度為O(1)C.LinkedHashMap可以按插入順序或訪(fǎng)問(wèn)順序迭代元素D.TreeSet是基于哈希表實(shí)現(xiàn)的,元素?zé)o序【選項(xiàng)】A.選項(xiàng)AB.選項(xiàng)BC.選項(xiàng)CD.選項(xiàng)D【參考答案】C【解析】C正確:LinkedHashMap支持兩種迭代順序(插入順序和訪(fǎng)問(wèn)順序)。A錯(cuò)誤:HashSet通過(guò)hashCode()和equals()判重。B錯(cuò)誤:ArrayList的get()是O(1),但其基于數(shù)組實(shí)現(xiàn),理論上是常數(shù)時(shí)間。D錯(cuò)誤:TreeSet基于紅黑樹(shù),元素有序。30.以下代碼的輸出結(jié)果是什么?```javapublicclassTest{publicstaticvoidmain(String[]args){inta=10;intb=a+++++a+a--;System.out.println(b);}}```A.32B.33C.34D.35【選項(xiàng)】A.選項(xiàng)AB.選項(xiàng)BC.選項(xiàng)CD.選項(xiàng)D【參考答案】C【解析】計(jì)算過(guò)程:1.a初始為102.a++:先取a值10,a變?yōu)?13.++a:a先增到12,取124.a--:取當(dāng)前a值12,a變?yōu)?15.b=10+12+12=3431.在Java中,關(guān)于final關(guān)鍵字的說(shuō)法,錯(cuò)誤的是?【選項(xiàng)】A.final修飾的類(lèi)不能被繼承B.final修飾的方法可以被子類(lèi)重載C.final修飾的變量必須顯式初始化D.final修飾的引用類(lèi)型變量不可變的是引用而非對(duì)象內(nèi)容【參考答案】B【解析】1.A正確:final類(lèi)禁止繼承,如String類(lèi)2.B錯(cuò)誤:final方法不能被重寫(xiě)(Overriding),重載(Overloading)與final無(wú)關(guān)3.C正確:final變量是常量,定義時(shí)必須賦值4.D正確:final修飾的引用變量地址不可變,但對(duì)象內(nèi)部屬性可修改32.下列代碼的輸出結(jié)果是什么?```javapublicclassTest{staticintx=5;publicstaticvoidmain(String[]args){System.out.print(x+++",");System.out.print(++x);}}```【選項(xiàng)】A.5,6B.5,7C.6,7D.6,6【參考答案】B【解析】1.第一次輸出x++:先輸出5,然后x自增為62.第二次輸出++x:先自增為7,再輸出73.注意靜態(tài)變量x的全局性33.關(guān)于Java異常處理,錯(cuò)誤的是?【選項(xiàng)】A.finally塊無(wú)論是否發(fā)生異常都會(huì)執(zhí)行B.try-with-resources可自動(dòng)關(guān)閉實(shí)現(xiàn)了AutoCloseable的資源C.Error類(lèi)異常屬于受檢異常,必須捕獲D.多個(gè)catch塊時(shí),子類(lèi)異常應(yīng)寫(xiě)在父類(lèi)異常之前【參考答案】C【解析】1.A正確:finally始終執(zhí)行(除非System.exit())2.B正確:try-with-resources語(yǔ)法特性3.C錯(cuò)誤:Error是嚴(yán)重系統(tǒng)級(jí)錯(cuò)誤,非受檢異常(UncheckedException)4.D正確:異常捕獲順序由子到父避免覆蓋34.下列哪項(xiàng)不是Java集合框架的接口?【選項(xiàng)】A.SortedMapB.BlockingQueueC.ConcurrentHashMapD.NavigableSet【參考答案】C【解析】1.SortedMap是接口(java.util包)2.BlockingQueue是java.util.concurrent接口3.ConcurrentHashMap是具體實(shí)現(xiàn)類(lèi)(線(xiàn)程安全Map),非接口4.NavigableSet是SortedSet的子接口35.關(guān)于多線(xiàn)程,哪項(xiàng)描述正確?【選項(xiàng)】A.synchronized只能修飾方法B.Runnable接口必須實(shí)現(xiàn)run()和start()方法C.wait()方法會(huì)釋放對(duì)象鎖D.線(xiàn)程優(yōu)先級(jí)范圍是0-10(默認(rèn)5)【參考答案】C【解析】1.A錯(cuò)誤:synchronized可修飾代碼塊2.B錯(cuò)誤:Runnable只需實(shí)現(xiàn)run(),start()是Thread類(lèi)方法3.C正確:wait()釋放鎖,notify()喚醒后需重新獲取4.D錯(cuò)誤:優(yōu)先級(jí)范圍1-10,默認(rèn)5二、多選題(共35題)1.下列關(guān)于Java中抽象類(lèi)和接口的說(shuō)法,正確的有哪些?A.抽象類(lèi)可以有構(gòu)造方法,而接口不能有構(gòu)造方法B.接口中的方法默認(rèn)是publicabstract的,變量默認(rèn)是publicstaticfinal的C.抽象類(lèi)可以實(shí)現(xiàn)多個(gè)接口,但只能繼承一個(gè)父類(lèi)D.接口可以繼承多個(gè)接口,且可以包含具體方法的實(shí)現(xiàn)(如default方法)【選項(xiàng)】A.抽象類(lèi)可以有構(gòu)造方法,而接口不能有構(gòu)造方法B.接口中的方法默認(rèn)是publicabstract的,變量默認(rèn)是publicstaticfinal的C.抽象類(lèi)可以實(shí)現(xiàn)多個(gè)接口,但只能繼承一個(gè)父類(lèi)D.接口可以繼承多個(gè)接口,且可以包含具體方法的實(shí)現(xiàn)(如default方法)【參考答案】A、B、C、D【解析】A正確,抽象類(lèi)雖不能實(shí)例化,但可以有構(gòu)造方法供子類(lèi)調(diào)用;接口無(wú)構(gòu)造方法。B正確,接口中方法默認(rèn)為publicabstract,變量默認(rèn)為publicstaticfinal。C正確,Java單繼承多實(shí)現(xiàn)規(guī)則下,抽象類(lèi)可繼承一個(gè)父類(lèi)并實(shí)現(xiàn)多個(gè)接口。D正確,接口支持多繼承其他接口(extendsInterface1,Interface2),且Java8后可用default方法實(shí)現(xiàn)具體邏輯。2.下列哪些異常屬于RuntimeException的子類(lèi)?A.NullPointerExceptionB.ClassNotFoundExceptionC.IllegalArgumentExceptionD.IOException【選項(xiàng)】A.NullPointerExceptionB.ClassNotFoundExceptionC.IllegalArgumentExceptionD.IOException【參考答案】A、C【解析】A正確,NullPointerException是運(yùn)行時(shí)異常,無(wú)需顯式捕獲。C正確,IllegalArgumentException是參數(shù)非法引發(fā)的運(yùn)行時(shí)異常。B錯(cuò)誤,ClassNotFoundException是檢查型異常,需try-catch或throws聲明。D錯(cuò)誤,IOException及其子類(lèi)均為檢查型異常。3.以下關(guān)于Java線(xiàn)程同步的說(shuō)法,正確的有哪些?A.synchronized關(guān)鍵字可用于修飾方法或代碼塊B.Lock接口的tryLock()方法可非阻塞獲取鎖C.volatile關(guān)鍵字能保證復(fù)合操作的原子性D.wait()和notify()必須在synchronized代碼塊內(nèi)調(diào)用【選項(xiàng)】A.synchronized關(guān)鍵字可用于修飾方法或代碼塊B.Lock接口的tryLock()方法可非阻塞獲取鎖C.volatile關(guān)鍵字能保證復(fù)合操作的原子性D.wait()和notify()必須在synchronized代碼塊內(nèi)調(diào)用【參考答案】A、B、D【解析】A正確,synchronized可修飾方法(實(shí)例方法或靜態(tài)方法)或代碼塊。B正確,tryLock()嘗試獲取鎖,成功返回true,失敗立即返回false。C錯(cuò)誤,volatile僅保證可見(jiàn)性和有序性,原子性需通過(guò)synchronized或Atomic類(lèi)實(shí)現(xiàn)。D正確,調(diào)用wait()/notify()前需持有對(duì)象鎖,否則拋IllegalMonitorStateException。4.下列哪些集合類(lèi)是線(xiàn)程安全的?A.ArrayListB.VectorC.HashMapD.ConcurrentHashMap【選項(xiàng)】A.ArrayListB.VectorC.HashMapD.ConcurrentHashMap【參考答案】B、D【解析】A錯(cuò)誤,ArrayList非線(xiàn)程安全,多線(xiàn)程操作需外部同步。B正確,Vector通過(guò)synchronized方法實(shí)現(xiàn)線(xiàn)程安全。C錯(cuò)誤,HashMap非線(xiàn)程安全,多線(xiàn)程下可能死循環(huán)或數(shù)據(jù)丟失。D正確,ConcurrentHashMap使用分段鎖機(jī)制保證線(xiàn)程安全。5.下列關(guān)于String和StringBuilder的表述,正確的有哪些?A.String對(duì)象不可變,修改會(huì)生成新對(duì)象B.StringBuilder的append()方法返回原對(duì)象引用C.String的equals()方法比較內(nèi)容,==比較地址D.StringBuilder是線(xiàn)程安全的,而StringBuffer非線(xiàn)程安全【選項(xiàng)】A.String對(duì)象不可變,修改會(huì)生成新對(duì)象B.StringBuilder的append()方法返回原對(duì)象引用C.String的equals()方法比較內(nèi)容,==比較地址D.StringBuilder是線(xiàn)程安全的,而StringBuffer非線(xiàn)程安全【參考答案】A、B、C【解析】A正確,String不可變,修改操作實(shí)際生成新字符串對(duì)象。B正確,StringBuilder的append()返回this,支持鏈?zhǔn)秸{(diào)用。C正確,String重寫(xiě)equals()比較內(nèi)容,==比較對(duì)象地址。D錯(cuò)誤,StringBuilder非線(xiàn)程安全,StringBuffer通過(guò)synchronized保證線(xiàn)程安全。6.以下哪些操作可能拋出InterruptedException?A.Thread.sleep()B.Object.wait()C.Lock.lock()D.Thread.join()【選項(xiàng)】A.Thread.sleep()B.Object.wait()C.Lock.lock()D.Thread.join()【參考答案】A、B、D【解析】A正確,sleep()可被中斷并拋出InterruptedException。B正確,wait()方法在等待時(shí)若線(xiàn)程被中斷會(huì)拋出該異常。C錯(cuò)誤,Lock.lock()不可中斷,lockInterruptibly()才支持中斷響應(yīng)。D正確,join()等待線(xiàn)程結(jié)束,期間若被中斷會(huì)拋出異常。7.下列哪些屬于Java泛型的作用?A.編譯時(shí)類(lèi)型檢查B.避免強(qiáng)制類(lèi)型轉(zhuǎn)換C.增強(qiáng)代碼復(fù)用性D.消除運(yùn)行時(shí)類(lèi)型轉(zhuǎn)換錯(cuò)誤【選項(xiàng)】A.編譯時(shí)類(lèi)型檢查B.避免強(qiáng)制類(lèi)型轉(zhuǎn)換C.增強(qiáng)代碼復(fù)用性D.消除運(yùn)行時(shí)類(lèi)型轉(zhuǎn)換錯(cuò)誤【參考答案】A、B、D【解析】A正確,泛型在編譯期檢查類(lèi)型一致性,減少ClassCastException。B正確,泛型自動(dòng)處理類(lèi)型轉(zhuǎn)換,避免顯式強(qiáng)制轉(zhuǎn)換。C錯(cuò)誤,泛型不直接提升代碼復(fù)用性(如方法重載或繼承更直接)。D正確,泛型通過(guò)類(lèi)型擦除實(shí)現(xiàn),運(yùn)行時(shí)無(wú)額外類(lèi)型轉(zhuǎn)換錯(cuò)誤風(fēng)險(xiǎn)。8.下列有關(guān)Java多態(tài)性的表述,正確的有哪些?A.父類(lèi)引用指向子類(lèi)對(duì)象時(shí),調(diào)用方法由實(shí)際對(duì)象類(lèi)型決定B.static方法不能被重寫(xiě),因此不存在多態(tài)C.final方法可被重寫(xiě)且支持多態(tài)D.多態(tài)性?xún)H適用于實(shí)例方法,不適用于成員變量【選項(xiàng)】A.父類(lèi)引用指向子類(lèi)對(duì)象時(shí),調(diào)用方法由實(shí)際對(duì)象類(lèi)型決定B.static方法不能被重寫(xiě),因此不存在多態(tài)C.final方法可被重寫(xiě)且支持多態(tài)D.多態(tài)性?xún)H適用于實(shí)例方法,不適用于成員變量【參考答案】A、B、D【解析】A正確,動(dòng)態(tài)綁定機(jī)制使運(yùn)行時(shí)調(diào)用實(shí)際對(duì)象的方法。B正確,static方法屬于類(lèi),重寫(xiě)無(wú)效,不參與多態(tài)。C錯(cuò)誤,final方法不可被重寫(xiě),無(wú)多態(tài)特性。D正確,成員變量訪(fǎng)問(wèn)由引用類(lèi)型決定,無(wú)多態(tài)行為。9.下列哪些關(guān)于異常處理的說(shuō)法是正確的?A.finally塊中的代碼無(wú)論是否發(fā)生異常都會(huì)執(zhí)行B.try-with-resources語(yǔ)句會(huì)自動(dòng)關(guān)閉實(shí)現(xiàn)了AutoCloseable接口的資源C.拋出Error表示程序可恢復(fù)的錯(cuò)誤,應(yīng)捕獲處理D.自定義異常通常繼承Exception或RuntimeException【選項(xiàng)】A.finally塊中的代碼無(wú)論是否發(fā)生異常都會(huì)執(zhí)行B.try-with-resources語(yǔ)句會(huì)自動(dòng)關(guān)閉實(shí)現(xiàn)了AutoCloseable接口的資源C.拋出Error表示程序可恢復(fù)的錯(cuò)誤,應(yīng)捕獲處理D.自定義異常通常繼承Exception或RuntimeException【參考答案】A、B、D【解析】A正確,finally塊始終執(zhí)行(除非JVM退出或線(xiàn)程中斷)。B正確,try-with-resources自動(dòng)調(diào)用資源的close()方法。C錯(cuò)誤,Error表示嚴(yán)重不可恢復(fù)錯(cuò)誤(如OutOfMemoryError),通常不捕獲。D正確,自定義異常一般繼承Exception(檢查型)或RuntimeException(非檢查型)。10.下列關(guān)于Java接口的表述,正確的有哪些?A.Java8允許接口定義靜態(tài)方法和默認(rèn)方法B.接口不能包含成員變量,只能定義常量C.實(shí)現(xiàn)類(lèi)必須重寫(xiě)接口的所有抽象方法D.接口可通過(guò)匿名內(nèi)部類(lèi)實(shí)現(xiàn)【選項(xiàng)】A.Java8允許接口定義靜態(tài)方法和默認(rèn)方法B.接口不能包含成員變量,只能定義常量C.實(shí)現(xiàn)類(lèi)必須重寫(xiě)接口的所有抽象方法D.接口可通過(guò)匿名內(nèi)部類(lèi)實(shí)現(xiàn)【參考答案】A、C、D【解析】A正確,Java8后接口可包含靜態(tài)方法和默認(rèn)方法(default修飾)。B錯(cuò)誤,接口可定義變量(默認(rèn)為publicstaticfinal常量),但非常量需通過(guò)其他方式實(shí)現(xiàn)。C正確,非抽象實(shí)現(xiàn)類(lèi)必須重寫(xiě)所有抽象方法(默認(rèn)方法可不重寫(xiě))。D正確,可通過(guò)匿名內(nèi)部類(lèi)直接實(shí)現(xiàn)接口并實(shí)例化。11.下列關(guān)于Java多態(tài)性的描述中,正確的有?【選項(xiàng)】A.父類(lèi)引用指向子類(lèi)對(duì)象時(shí),若子類(lèi)重寫(xiě)父類(lèi)方法,調(diào)用的是子類(lèi)方法B.通過(guò)父類(lèi)引用無(wú)法直接調(diào)用子類(lèi)獨(dú)有的方法C.父類(lèi)的私有方法可以被繼承和重寫(xiě)D.靜態(tài)方法可以被子類(lèi)重寫(xiě)并體現(xiàn)多態(tài)性【參考答案】AB【解析】A正確:多態(tài)的核心特性是父類(lèi)引用指向子類(lèi)對(duì)象時(shí),重寫(xiě)方法的調(diào)用由實(shí)際對(duì)象類(lèi)型決定。B正確:父類(lèi)引用僅能訪(fǎng)問(wèn)父類(lèi)聲明的方法,無(wú)法直接調(diào)用子類(lèi)擴(kuò)展的方法。C錯(cuò)誤:私有方法無(wú)法被繼承,更無(wú)法被重寫(xiě)。D錯(cuò)誤:靜態(tài)方法在編譯時(shí)綁定,不具備多態(tài)性。12.以下關(guān)于Java集合框架的說(shuō)法,正確的是?【選項(xiàng)】A.ArrayList基于數(shù)組實(shí)現(xiàn),隨機(jī)訪(fǎng)問(wèn)效率高B.LinkedList在任何情況下插入元素的時(shí)間復(fù)雜度為O(1)C.Vector是線(xiàn)程安全的,ArrayList是線(xiàn)程不安全的D.Collections.synchronizedList()可將任意List轉(zhuǎn)為線(xiàn)程安全集合【參考答案】ACD【解析】A正確:ArrayList采用動(dòng)態(tài)數(shù)組,索引訪(fǎng)問(wèn)時(shí)間復(fù)雜度O(1)。B錯(cuò)誤:LinkedList插入頭/尾部為O(1),中間插入需遍歷鏈表,時(shí)間復(fù)雜度為O(n)。C正確:Vector通過(guò)同步方法實(shí)現(xiàn)線(xiàn)程安全,ArrayList未做同步處理。D正確:Collections.synchronizedList()通過(guò)包裝類(lèi)實(shí)現(xiàn)線(xiàn)程安全。13.關(guān)于Java異常處理,下列說(shuō)法正確的有?【選項(xiàng)】A.Error屬于非檢查型異常,通常表示系統(tǒng)級(jí)錯(cuò)誤B.try塊中若拋出異常,后續(xù)代碼將不再執(zhí)行C.finally塊中的代碼無(wú)論是否發(fā)生異常都會(huì)執(zhí)行D.catch塊可以捕獲Throwable及其所有子類(lèi)異?!緟⒖即鸢浮緼BC【解析】A正確:Error(如OutOfMemoryError)無(wú)需顯式捕獲。B正確:try塊內(nèi)異常發(fā)生后,剩余代碼被跳過(guò)并跳轉(zhuǎn)至catch/finally。C正確:finally塊常用于資源釋放,必定執(zhí)行(除非JVM退出)。D錯(cuò)誤:catch塊應(yīng)捕獲具體異常類(lèi),捕獲Throwable可能掩蓋嚴(yán)重錯(cuò)誤(如Error)。14.關(guān)于Java字符串處理,下列說(shuō)法正確的有?【選項(xiàng)】A.String對(duì)象是不可變的,修改操作會(huì)生成新對(duì)象B.StringBuilder是線(xiàn)程安全的,StringBuffer是非線(xiàn)程安全的C.String常量池用于避免重復(fù)創(chuàng)建相同字符串D."a"+"b"在編譯時(shí)會(huì)被優(yōu)化為"ab"【參考答案】ACD【解析】A正確:String類(lèi)為final且內(nèi)部字符數(shù)組不可變。B錯(cuò)誤:StringBuffer通過(guò)同步方法保證線(xiàn)程安全,StringBuilder未同步。C正確:常量池復(fù)用相同字面量的String對(duì)象以減少內(nèi)存開(kāi)銷(xiāo)。D正確:編譯器會(huì)拼接常量表達(dá)式。15.下列關(guān)于Java泛型的描述,錯(cuò)誤的是?【選項(xiàng)】A.泛型信息在編譯后會(huì)被擦除B.List\與List\在運(yùn)行時(shí)類(lèi)型相同C.泛型類(lèi)可以繼承自非泛型類(lèi)D.通配符?extendsT表示可接收T及其父類(lèi)型【參考答案】D【解析】A正確:泛型通過(guò)類(lèi)型擦除實(shí)現(xiàn)兼容性。B正確:運(yùn)行時(shí)均為原生類(lèi)型List。C正確:泛型類(lèi)繼承普通類(lèi)是合法的(如classMyList\extendsArrayList)。D錯(cuò)誤:?extendsT表示接收T及其子類(lèi)型(上界通配符),父類(lèi)型應(yīng)使用?superT。16.以下關(guān)于Java多線(xiàn)程的說(shuō)法,正確的有?【選項(xiàng)】A.synchronized可修飾方法或代碼塊以實(shí)現(xiàn)同步B.Lock接口的tryLock()方法允許非阻塞獲取鎖C.volatile關(guān)鍵字保證變量操作的原子性D.AtomicInteger通過(guò)CAS機(jī)制實(shí)現(xiàn)原子操作【參考答案】ABD【解析】A正確:synchronized是Java最基本的同步機(jī)制。B正確:tryLock()嘗試獲取鎖,失敗不阻塞線(xiàn)程。C錯(cuò)誤:volatile僅保證可見(jiàn)性和有序性,不保證原子性(如i++需同步)。D正確:Atomic類(lèi)基于Compare-and-Swap(CAS)實(shí)現(xiàn)無(wú)鎖原子操作。17.關(guān)于Java輸入輸出流,下列說(shuō)法正確的有?【選項(xiàng)】A.FileInputStream是字節(jié)流,F(xiàn)ileReader是字符流B.BufferedReader通過(guò)緩沖區(qū)提升讀取效率C.ObjectOutputStream可直接寫(xiě)入基本數(shù)據(jù)類(lèi)型D.NIO的Channel支持非阻塞IO操作【參考答案】ABCD【解析】A正確:字節(jié)流處理原始字節(jié),字符流處理Unicode字符。B正確:BufferedReader減少底層IO操作次數(shù)。C正確:ObjectOutputStream提供writeInt()等方法。D正確:NIO的Channel和Selector支持高效非阻塞模型。18.下列關(guān)于繼承的描述中,正確的有?【選項(xiàng)】A.子類(lèi)構(gòu)造方法默認(rèn)調(diào)用父類(lèi)無(wú)參構(gòu)造B.final類(lèi)可以被繼承C.父類(lèi)private成員對(duì)子類(lèi)不可見(jiàn)D.super()必須在子類(lèi)構(gòu)造方法第一行【參考答案】ACD【解析】A正確:若無(wú)顯式super調(diào)用,編譯器自動(dòng)添加super()。B錯(cuò)誤:final類(lèi)禁止繼承(如String類(lèi))。C正確:private成員僅在當(dāng)前類(lèi)可見(jiàn)。D正確:super()或this()必須位于構(gòu)造方法首行。19.關(guān)于Java接口與抽象類(lèi),下列說(shuō)法正確的有?【選項(xiàng)】A.接口中所有方法默認(rèn)是publicabstract的B.接口可以包含成員變量,且默認(rèn)為publicstaticfinalC.抽象類(lèi)可以有構(gòu)造方法D.類(lèi)可同時(shí)繼承多個(gè)抽象類(lèi)【參考答案】ABC【解析】A正確:接口方法默認(rèn)為抽象方法(Java8前)。B正確:接口字段隱式為常量。C正確:抽象類(lèi)構(gòu)造方法供子類(lèi)調(diào)用。D錯(cuò)誤:Java僅支持單繼承(抽象類(lèi)同樣受限)。20.關(guān)于Java數(shù)據(jù)庫(kù)連接(JDBC),下列說(shuō)法正確的有?【選項(xiàng)】A.DriverManager用于建立數(shù)據(jù)庫(kù)連接B.PreparedStatement可防止SQL注入C.Connection的setAutoCommit(false)用于開(kāi)啟事務(wù)D.ResultSet.TYPE_SCROLL_INSENSITIVE表示結(jié)果集可滾動(dòng)且不敏感更新【參考答案】ABCD【解析】A正確:DriverManager.getConnection()創(chuàng)建連接。B正確:預(yù)編譯語(yǔ)句過(guò)濾非法參數(shù)。C正確:關(guān)閉自動(dòng)提交后需手動(dòng)commit/rollback。D正確:TYPE_SCROLL_INSENSITIVE支持雙向滾動(dòng)且不感知數(shù)據(jù)庫(kù)更新。21.下列關(guān)于Java中抽象類(lèi)和接口的說(shuō)法,正確的是?【選項(xiàng)】A.抽象類(lèi)可以有構(gòu)造方法,而接口不能有構(gòu)造方法B.抽象類(lèi)可以被單繼承,接口可以被多實(shí)現(xiàn)C.抽象類(lèi)的方法必須有方法體,接口的方法必須是抽象的D.抽象類(lèi)可以包含非final的成員變量,接口的成員變量默認(rèn)是final的【參考答案】ABD【解析】A正確:抽象類(lèi)可以有構(gòu)造方法用于子類(lèi)實(shí)例化時(shí)初始化,而接口無(wú)構(gòu)造方法。B正確:Java單繼承類(lèi),但接口支持多實(shí)現(xiàn)。C錯(cuò)誤:抽象類(lèi)可以包含抽象方法(無(wú)方法體)和具體方法;接口中的方法默認(rèn)是抽象且public的(Java8后允許default方法)。D正確:接口的成員變量默認(rèn)是publicstaticfinal的,而抽象類(lèi)無(wú)此限制。22.下列屬于Java中CheckedException(受檢異常)的是?【選項(xiàng)】A.NullPointerExceptionB.IOExceptionC.ClassNotFoundExceptionD.ArrayIndexOutOfBoundsException【參考答案】BC【解析】CheckedException需顯式處理(try-catch或throws)。B(IO操作錯(cuò)誤)和C(類(lèi)未找到)是典型受檢異常。A(空指針)和D(數(shù)組越界)屬于RuntimeException(非受檢異常),無(wú)需強(qiáng)制處理。23.關(guān)于Java集合框架,下列說(shuō)法正確的是?【選項(xiàng)】A.ArrayList基于數(shù)組實(shí)現(xiàn),隨機(jī)訪(fǎng)問(wèn)效率高B.LinkedList適合頻繁插入刪除操作C.HashMap允許null鍵和null值,且線(xiàn)程安全D.TreeMap根據(jù)自然順序或Comparator對(duì)鍵排序【參考答案】ABD【解析】A正確:ArrayList數(shù)組結(jié)構(gòu)支持快速隨機(jī)訪(fǎng)問(wèn)。B正確:LinkedList雙向鏈表結(jié)構(gòu)優(yōu)化增刪操作。C錯(cuò)誤:HashMap非線(xiàn)程安全,ConcurrentHashMap才是線(xiàn)程安全的。D正確:TreeMap通過(guò)紅黑樹(shù)實(shí)現(xiàn)鍵的排序存儲(chǔ)。24.下列多線(xiàn)程同步機(jī)制中,屬于Java關(guān)鍵字或API的是?【選項(xiàng)】A.synchronizedB.volatileC.Lock接口D.Semaphore【參考答案】ABC【解析】A正確:synchronized是關(guān)鍵字,用于方法或代碼塊同步。B正確:volatile保證變量可見(jiàn)性,禁止指令重排。C正確:Lock是java.util.concurrent包的顯式鎖接口。D錯(cuò)誤:Semaphore是同步工具類(lèi),非關(guān)鍵字或基礎(chǔ)API。25.關(guān)于Java字符串,下列說(shuō)法錯(cuò)誤的是?【選項(xiàng)】A.String對(duì)象創(chuàng)建后不可修改B.StringBuilder是線(xiàn)程安全的C."=="比較的是字符串內(nèi)容D.String的substring方法可能引起內(nèi)存泄漏【參考答案】BC【解析】A正確:String不可變性是其核心特性。B錯(cuò)誤:StringBuilder非線(xiàn)程安全,StringBuffer才是。C錯(cuò)誤:"=="比較對(duì)象地址,equals比較內(nèi)容。D正確:舊版本JDK中substring可能保留原字符數(shù)組引用導(dǎo)致內(nèi)存泄漏。26.下列哪些是Java中final關(guān)鍵字的正確用法?【選項(xiàng)】A.修飾類(lèi)表示不可繼承B.修飾方法表示不可重寫(xiě)C.修飾變量表示常量(值不可變)D.修飾接口表示方法必須被實(shí)現(xiàn)【參考答案】ABC【解析】A正確:final類(lèi)不能派生子類(lèi)(如String)。B正確:final方法禁止子類(lèi)重寫(xiě)。C正確:final變量初始化后不可修改。D錯(cuò)誤:接口方法默認(rèn)abstract,只能由實(shí)現(xiàn)類(lèi)重寫(xiě),無(wú)需final修飾。27.關(guān)于Java異常處理,下列代碼執(zhí)行可能輸出的是?(多選)```javatry{int[]arr=newint[5];arr[10]=1;}catch(NullPointerExceptione){System.out.print("A");}catch(Exceptione){System.out.print("B");}finally{System.out.print("C");}```【選項(xiàng)】A.AB.BC.CD.BC【參考答案】BD【解析】數(shù)組越界拋出ArrayIndexOutOfBoundsException(Exception子類(lèi)),第一個(gè)catch不匹配,進(jìn)入第二個(gè)catch輸出"B",finally始終執(zhí)行輸出"C"。最終輸出"BC"(選項(xiàng)D),單獨(dú)輸出"B"也可能存在(若僅關(guān)注部分情況選B)。28.關(guān)于JavaI/O流,下列說(shuō)法正確的是?【選項(xiàng)】A.FileInputStream用于讀取二進(jìn)制文件B.BufferedReader提供字符緩沖讀取功能C.ObjectOutputStream可序列化transient修飾的變量D.PrintWriter可以自動(dòng)刷新緩沖區(qū)【參考答案】ABD【解析】A正確:FileInputStream是字節(jié)流,處理二進(jìn)制文件。B正確:BufferedReader包裝字符流提升讀取效率。C錯(cuò)誤:transient變量禁止序列化。D正確:PrintWriter構(gòu)造時(shí)設(shè)置autoFlush為true可自動(dòng)刷新。29.下列Java語(yǔ)法或概念中,存在錯(cuò)誤的是?【選項(xiàng)】A.int[]arr=newint[]{1,2,3};B.接口中定義私有方法(Java9+支持)C.抽象類(lèi)實(shí)現(xiàn)接口時(shí)可不實(shí)現(xiàn)接口方法D.靜態(tài)內(nèi)部類(lèi)可以訪(fǎng)問(wèn)外部類(lèi)的非靜態(tài)成員【參考答案】D【解析】A正確:正確數(shù)組初始化語(yǔ)法。B正確:Java9允許接口定義私有方法。C正確:抽象類(lèi)實(shí)現(xiàn)接口可延后方法實(shí)現(xiàn)。D錯(cuò)誤:靜態(tài)內(nèi)部類(lèi)只能訪(fǎng)問(wèn)外部類(lèi)的靜態(tài)成員。30.關(guān)于JDBC操作數(shù)據(jù)庫(kù),下列說(shuō)法正確的是?【選項(xiàng)】A.Connection.createStatement()返回Statement對(duì)象B.PreparedStatement可防止SQL注入C.ResultSet.next()用于移動(dòng)到下一條記錄D.Class.forName()加載驅(qū)動(dòng)僅需在Java5之前調(diào)用【參考答案】ABC【解析】A正確:Statement對(duì)象用于執(zhí)行靜態(tài)SQL語(yǔ)句。B正確:PreparedStatement預(yù)編譯阻止注入。C正確:next()移動(dòng)游標(biāo)并判斷是否有數(shù)據(jù)。D錯(cuò)誤:JDBC4.0后自動(dòng)加載驅(qū)動(dòng),但顯式調(diào)用仍兼容。31.下列關(guān)于Java中方法重載(overload)與重寫(xiě)(override)的描述,哪些是正確的?【選項(xiàng)】A.方法重載要求方法名相同,參數(shù)列表必須不同;方法重寫(xiě)要求方法名、參數(shù)列表和返回類(lèi)型完全相同B.重載可以發(fā)生在同一類(lèi)或子類(lèi)中,重寫(xiě)只能發(fā)生在子類(lèi)與父類(lèi)之間C.靜態(tài)方法可以被重寫(xiě),但不能被重載D.重寫(xiě)的方法不能縮小原方法的訪(fǎng)問(wèn)權(quán)限(如父類(lèi)為protected,子類(lèi)重寫(xiě)為private會(huì)編譯報(bào)錯(cuò))E.返回類(lèi)型為基本數(shù)據(jù)類(lèi)型時(shí),重載方法允許返回類(lèi)型不同(如int和void)【參考答案】ABD【解析】A正確:重載必須參數(shù)列表不同(類(lèi)型、順序或數(shù)量),重寫(xiě)要求方法簽名完全一致(包括返回類(lèi)型協(xié)變)。B正確:重載可在同類(lèi)或子類(lèi)中通過(guò)不同參數(shù)實(shí)現(xiàn),重寫(xiě)需父子類(lèi)繼承關(guān)系。C錯(cuò)誤:靜態(tài)方法屬于類(lèi),不能重寫(xiě)(若同名隱藏父類(lèi)方法);但可重載(不同參數(shù))。D正確:子類(lèi)重寫(xiě)方法的訪(fǎng)問(wèn)權(quán)限不能低于父類(lèi)(如父類(lèi)public則子類(lèi)不能改為protected)。E錯(cuò)誤:僅當(dāng)返回類(lèi)型是父類(lèi)方法返回類(lèi)型的子類(lèi)時(shí)構(gòu)成重寫(xiě);重載時(shí)若僅返回類(lèi)型不同而參數(shù)相同,編譯報(bào)錯(cuò)。32.以下關(guān)于Java集合框架中ArrayList和LinkedList的描述,正確的是?【選項(xiàng)】A.ArrayList基于動(dòng)態(tài)數(shù)組實(shí)現(xiàn),隨機(jī)訪(fǎng)問(wèn)效率高于LinkedListB.LinkedList實(shí)現(xiàn)了Deque接口,可作為雙端隊(duì)列使用C.兩者均非線(xiàn)程安全,若需線(xiàn)程安全可使用Collections.synchronizedList()包裝D.在列表中間頻繁插入刪除操作時(shí),LinkedList性能通常優(yōu)于A(yíng)rrayListE.ArrayList默認(rèn)初始容量為10,擴(kuò)容時(shí)每次增加原容量的50%【參考答案】ABCD【解析】A正確:ArrayList基于數(shù)組,支持O(1)隨機(jī)訪(fǎng)問(wèn);LinkedList需遍歷節(jié)點(diǎn),訪(fǎng)問(wèn)效率O(n)。B正確:LinkedList實(shí)現(xiàn)List和Deque接口,支持addFirst()、removeLast()等雙端操作。C正確:兩者均為非線(xiàn)程安全,通過(guò)Collections工具類(lèi)可實(shí)現(xiàn)同步。D正確:LinkedList插入刪除只需修改節(jié)點(diǎn)指針(O(1)),ArrayList需移動(dòng)元素(O(n))。E錯(cuò)誤:ArrayList默認(rèn)初始容量為10,但擴(kuò)容規(guī)則為原容量的1.5倍(即增加50%),而非固定增加50%。33.下列哪些異常屬于RuntimeException的子類(lèi)(即非檢查型異常)?【選項(xiàng)】A.NullPointerExceptionB.ClassCastExceptionC.IOExceptionD.IllegalArgumentExceptionE.SQLException【參考答案】ABD【解析】A正確:空指針異常,常見(jiàn)于未初始化對(duì)象引用。B正確:類(lèi)型轉(zhuǎn)換異常,如向下轉(zhuǎn)型失敗時(shí)拋出。C錯(cuò)誤:IOException是檢查型異常,必須顯式處理(try-catch或throws)。D正確:非法參數(shù)異常,例如傳參不符合方法要求。E錯(cuò)誤:SQLException是檢查型異常,與數(shù)據(jù)庫(kù)操作相關(guān)。34.關(guān)于Java多線(xiàn)程同步機(jī)制,下列描述正確的有哪些?【選項(xiàng)】A.synchronized修飾實(shí)例方法時(shí),鎖對(duì)象是該方法所屬類(lèi)的Class對(duì)象B.synchronized代碼塊需顯式指定鎖對(duì)象(如synchronized(obj){...})C.wait()方法會(huì)使當(dāng)前線(xiàn)程釋放鎖,并進(jìn)入等待狀態(tài),需由notify()/notifyAll()喚醒D.volatile關(guān)鍵字可保證變量操作的原子性(如i++)E.ReentrantLock是顯式鎖,需手動(dòng)調(diào)用lock()和unlock(),支持公平鎖策略【參考答案】BCE【解析】A錯(cuò)誤:synchronized修飾實(shí)例方法時(shí),鎖對(duì)象是當(dāng)前實(shí)例(this);修飾靜態(tài)方法時(shí)鎖的是Class對(duì)象。B正確:synchronized代碼塊必須指定鎖對(duì)象,靈活控制同步范圍。C正確:wait()釋放鎖并進(jìn)入等待池,需依靠其他線(xiàn)程喚醒。D錯(cuò)誤:volatile僅保證可見(jiàn)性和有序性,但不保證復(fù)合操作(如i++)的原子性。E正確:ReentrantLock屬于A(yíng)PI級(jí)鎖,通過(guò)lock()/unlock()控制,可設(shè)置公平性。35.在Java中,final關(guān)鍵字的用途包括哪些?【選項(xiàng)】A.修飾類(lèi)時(shí),表示該類(lèi)不可被繼承B.修飾方法時(shí),表示該方法不可被子類(lèi)重寫(xiě)C.修飾變量時(shí),表示該變量必須在聲明時(shí)初始化D.修飾基本類(lèi)型變量時(shí),其值不可變;修飾引用類(lèi)型變量時(shí),引用指向的對(duì)象不可變E.局部變量使用final修飾后,只能賦值一次【參考答案】ABE【解析】A正確:final類(lèi)無(wú)法被繼承(如String類(lèi))。B正確:final方法禁止子類(lèi)重寫(xiě)(但與private方法隱式final不同)。C錯(cuò)誤:final變量可在聲明時(shí)或構(gòu)造器中初始化(成員變量)。D錯(cuò)誤:final修飾引用類(lèi)型時(shí),引用地址不變,但對(duì)象內(nèi)部狀態(tài)可能改變(如集合內(nèi)容)。E正確:局部final變量一旦賦值不能修改(如finalintx=10;x=20;報(bào)錯(cuò))。三、判斷題(共30題)1.Java語(yǔ)言中,finalize()方法在對(duì)象被垃圾回收前一定會(huì)被調(diào)用?!具x項(xiàng)】A.正確B.錯(cuò)誤【參考答案】B【解析】finalize()方法并非一定會(huì)被調(diào)用。垃圾回收器的運(yùn)行具有不確定性,只有當(dāng)JVM決定回收某個(gè)對(duì)象時(shí),才會(huì)調(diào)用其finalize()方法,且無(wú)法保證該方法一定會(huì)執(zhí)行完畢。在實(shí)際開(kāi)發(fā)中,不建議依賴(lài)此方法進(jìn)行資源釋放。2.String對(duì)象的intern()方法會(huì)返回一個(gè)字符串常量池中與該字符串內(nèi)容相同的引用,若常量池中不存在則創(chuàng)建并返回?!具x項(xiàng)】A.正確B.錯(cuò)誤【參考答案】A【解析】intern()方法的作用是將字符串添加到常量池(若不存在),并返回常量池中的引用。例如,`Stringa=newString("java");Stringb=ern();`,若常量池中已有“java”,則b指向常量池的引用,a指向堆內(nèi)存,此時(shí)a==b為false;若常量池中不存在,則將其添加并返回該引用。3.接口中定義的變量默認(rèn)是publicstaticfinal類(lèi)型,且必須顯式初始化?!具x項(xiàng)】A.正確B.錯(cuò)誤【參考答案】A【解析】接口中的變量默認(rèn)為publicstaticfinal修飾,且必須被顯式賦值。若未初始化(如`intnum;`),編譯器將報(bào)錯(cuò)“=expected”,因?yàn)閒inal變量需要在聲明時(shí)賦值。4.在Java多線(xiàn)程編程中,調(diào)用Thread.sleep()方法會(huì)釋放當(dāng)前線(xiàn)程持有的所有鎖?!具x項(xiàng)】A.正確B.錯(cuò)誤【參考答案】B【解析】sleep()方法僅使線(xiàn)程進(jìn)入休眠狀態(tài),不會(huì)釋放任何持有的鎖。若需釋放鎖,應(yīng)使用wait()方法,該方法會(huì)讓線(xiàn)程進(jìn)入等待狀態(tài)并釋放鎖,由notify()或notifyAll()喚醒。5.String類(lèi)的trim()方法可以去除字符串中間的空格?!具x項(xiàng)】A.正確B.錯(cuò)誤【參考答案】B【解析】trim()方法僅移除字符串首尾的空格(ASCII碼≤32的字符),對(duì)中間的空格無(wú)效。若要移除字符串中所有空格,需使用replace("","")或其他正則表達(dá)式方法。6.兩個(gè)不同的String對(duì)象使用equals()方法比較可能返回true,但使用"=="比較一定返回false?!具x項(xiàng)】A.正確B.錯(cuò)誤【參考答案】B【解析】若兩個(gè)String對(duì)象內(nèi)容相同,equals()返回true;但若通過(guò)字面量賦值(如`Stringa="java";Stringb="java";`),JVM會(huì)將其指向同一常量池地址,此時(shí)"=="比較也返回true。7.Java的基本數(shù)據(jù)類(lèi)型包括byte、short、int、long、float、double、boolean、char和String?!具x項(xiàng)】A.正確B.錯(cuò)誤【參考答案】B【解析】Java有8種基本數(shù)據(jù)類(lèi)型:byte、short、int、long、float、double、boolean、char。String是引用類(lèi)型,屬于java.lang包下的類(lèi),并非基本數(shù)據(jù)類(lèi)型。8.線(xiàn)程的run()方法被調(diào)用時(shí),會(huì)啟動(dòng)一個(gè)新線(xiàn)程執(zhí)行任務(wù)?!具x項(xiàng)】A.正確B.錯(cuò)誤【參考答案】B【解析】直接調(diào)用run()方法僅會(huì)執(zhí)行當(dāng)前線(xiàn)程的任務(wù),不會(huì)創(chuàng)建新線(xiàn)程。啟動(dòng)新線(xiàn)程需調(diào)用start()方法,該方法會(huì)觸發(fā)JVM調(diào)用run()并在新線(xiàn)程中執(zhí)行。9.抽象類(lèi)(abstractclass)必須包含至少一個(gè)抽象方法?!具x項(xiàng)】A.正確B.錯(cuò)誤【參考答案】B【解析】抽象類(lèi)可以不包含抽象方法。若類(lèi)聲明為abstract但無(wú)抽象方法,其作用可能是禁止實(shí)例化(如工具類(lèi)基類(lèi)),但仍可通過(guò)繼承擴(kuò)展功能。10.靜態(tài)內(nèi)部類(lèi)可以直接訪(fǎng)問(wèn)外部類(lèi)的非靜態(tài)成員變量?!具x項(xiàng)】A.正確B.錯(cuò)誤【參考答案】B【解析】靜態(tài)內(nèi)部類(lèi)(staticnestedclass)只能直接訪(fǎng)問(wèn)外部類(lèi)的靜態(tài)成員。若要訪(fǎng)問(wèn)非靜態(tài)成員,需通過(guò)外部類(lèi)實(shí)例(如`newOuter().x`),因?yàn)殪o態(tài)內(nèi)部類(lèi)不持有外部類(lèi)實(shí)例的引用。11.Java語(yǔ)言中,final修飾的類(lèi)可
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年張家港市鳳凰鎮(zhèn)人民醫(yī)院自主招聘編外合同制衛(wèi)技人員5人備考題庫(kù)及參考答案詳解
- 2026年上海市嘉定區(qū)華亭鎮(zhèn)招聘?jìng)淇碱}庫(kù)參考答案詳解
- 2026年度中共義烏市委黨校公開(kāi)招聘高層次人才備考題庫(kù)及1套完整答案詳解
- 2026年關(guān)于選聘機(jī)械科學(xué)與工程學(xué)院兼職輔導(dǎo)員的備考題庫(kù)及參考答案詳解1套
- 2026年大理州蒼洱公證處公開(kāi)選調(diào)事業(yè)單位工作人員備考題庫(kù)及1套完整答案詳解
- 2026年國(guó)投期貨有限公司招聘?jìng)淇碱}庫(kù)及一套答案詳解
- 2026年中建六局總承包工程有限公司招聘?jìng)淇碱}庫(kù)及答案詳解一套
- 2026年廣西中醫(yī)藥大學(xué)第一附屬醫(yī)院公開(kāi)招聘高層次人才備考題庫(kù)及參考答案詳解一套
- 醫(yī)療器械研發(fā)合作專(zhuān)利共享協(xié)議
- 班級(jí)里的快樂(lè)時(shí)光記事文9篇
- 代客操盤(pán)合同 合同模板
- 高??蒲薪?jīng)費(fèi)存在問(wèn)題及對(duì)策建議
- (2024年)幼師必備幼兒園安全教育PPT《交通安全》
- 縮水機(jī)安全操作規(guī)程
- 顱內(nèi)壓波形分析
- 中國(guó)消化內(nèi)鏡內(nèi)痔診療指南及操作共識(shí)(2023年)
- 2023年高校教師資格證之高等教育學(xué)真題及答案
- dosm新人落地訓(xùn)練全流程課程第五步三次面談
- JJF 1798-2020隔聲測(cè)量室校準(zhǔn)規(guī)范
- GB/T 29516-2013錳礦石水分含量測(cè)定
- 石湖礦綜采放頂煤可行性技術(shù)論證1
評(píng)論
0/150
提交評(píng)論