版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2025年JAVA基礎(chǔ)考試題及參考答案一、單項(xiàng)選擇題(每題2分,共20分)1.以下關(guān)于Java基本數(shù)據(jù)類型的描述,正確的是()。A.boolean類型變量占1字節(jié)B.char類型可以存儲一個(gè)中文字符C.float類型變量賦值時(shí),數(shù)值后必須加D或dD.long類型變量的默認(rèn)值為0L2.給定代碼片段:```javaStrings1="java";Strings2=newString("java");Strings3=ern();System.out.println(s1==s3);```輸出結(jié)果為()。A.trueB.falseC.編譯錯(cuò)誤D.運(yùn)行時(shí)異常3.關(guān)于Java類的繼承,以下說法錯(cuò)誤的是()。A.子類可以訪問父類的protected成員B.子類無法重寫父類的final方法C.一個(gè)類可以繼承多個(gè)抽象類D.Object類是所有類的直接或間接父類4.以下代碼的輸出結(jié)果是()。```javainti=0;intj=i+++++i;System.out.println(j);```A.1B.2C.3D.45.關(guān)于Java集合框架,以下描述正確的是()。A.HashMap允許鍵為null,HashTable不允許B.ArrayList的底層是雙向鏈表,LinkedList的底層是動(dòng)態(tài)數(shù)組C.TreeSet的元素默認(rèn)按自然順序排序,依賴Comparable接口D.Vector是線程不安全的,ArrayList是線程安全的6.以下關(guān)于多線程的說法,錯(cuò)誤的是()。A.Thread類的start()方法會調(diào)用run()方法B.使用Runnable接口創(chuàng)建線程可以避免單繼承的限制C.synchronized關(guān)鍵字可以修飾靜態(tài)方法,此時(shí)鎖對象是當(dāng)前類的Class對象D.Lock接口的tryLock()方法會阻塞線程直到獲取鎖7.給定代碼:```javatry{inta=1/0;}catch(ArithmeticExceptione){System.out.println("算術(shù)異常");}catch(Exceptione){System.out.println("通用異常");}finally{System.out.println("最終執(zhí)行");}```輸出結(jié)果是()。A.算術(shù)異?!罱K執(zhí)行B.通用異常→最終執(zhí)行C.算術(shù)異常D.最終執(zhí)行8.以下關(guān)于Java泛型的說法,錯(cuò)誤的是()。A.泛型可以在編譯期檢查類型安全B.泛型類中的靜態(tài)方法不能使用類的泛型參數(shù)C.List<?superNumber>可以添加Integer類型元素D.泛型信息在運(yùn)行時(shí)會被擦除,因此無法通過反射獲取泛型類型9.以下代碼中,能夠正確創(chuàng)建線程的是()。A.```javanewThread(()->System.out.println("線程運(yùn)行")).run();```B.```javanewThread(newRunnable(){publicvoidrun(){System.out.println("線程運(yùn)行");}}).start();```C.```javanewThread(){publicvoidstart(){System.out.println("線程運(yùn)行");}}.start();```D.```javanewThread(newRunnable(){publicvoidstart(){System.out.println("線程運(yùn)行");}}).start();```10.關(guān)于JVM內(nèi)存模型,以下說法正確的是()。A.程序計(jì)數(shù)器用于存儲Java方法的字節(jié)碼指令地址B.堆內(nèi)存中的對象一定被垃圾回收器回收C.方法區(qū)存儲類的元數(shù)據(jù)、常量和靜態(tài)變量D.虛擬機(jī)棧存放對象實(shí)例和數(shù)組二、填空題(每空2分,共20分)1.Java中,用____關(guān)鍵字修飾的方法不能被重寫;用____關(guān)鍵字修飾的類不能被繼承。2.String、StringBuilder、StringBuffer中,線程安全的是____;執(zhí)行大量字符串拼接時(shí)效率最高的是____。3.異常處理中,____塊中的代碼無論是否發(fā)生異常都會執(zhí)行;如果希望在方法聲明中拋出異常,需要使用____關(guān)鍵字。4.集合框架中,Set接口的實(shí)現(xiàn)類____是基于哈希表的,____是基于紅黑樹的。5.多線程中,wait()方法屬于____類,notify()方法屬于____類(填Object或Thread)。6.反射機(jī)制中,通過Class對象的____方法可以獲取類的所有公共方法(包括繼承的);通過____方法可以創(chuàng)建類的實(shí)例(不調(diào)用構(gòu)造方法)。三、簡答題(每題6分,共30分)1.簡述Java中“==”和equals()方法的區(qū)別,并說明String類重寫equals()方法的意義。2.抽象類和接口的區(qū)別有哪些?請從定義、繼承關(guān)系、方法實(shí)現(xiàn)、成員變量等角度至少列出4點(diǎn)。3.說明Java多線程中synchronized和ReentrantLock的異同點(diǎn)(至少3點(diǎn))。4.什么是Java的垃圾回收(GC)?簡述可達(dá)性分析算法的基本思想,并列舉2種常見的垃圾回收器(如Serial、Parallel等)。5.說明泛型通配符“?”、“?extendsT”和“?superT”的區(qū)別,并舉例說明各自的使用場景。四、編程題(共30分)1.(8分)編寫一個(gè)方法,輸入一個(gè)字符串(如“helloworld”),輸出其中每個(gè)字符出現(xiàn)的次數(shù)(忽略空格)。要求使用HashMap存儲統(tǒng)計(jì)結(jié)果,并按字符順序打印(如h:1,e:1,l:3...)。2.(8分)設(shè)計(jì)一個(gè)線程安全的單例模式(懶漢式),要求避免多線程環(huán)境下的重復(fù)實(shí)例化問題。需寫出完整的類定義,并說明關(guān)鍵步驟的作用。3.(7分)使用JavaIO流實(shí)現(xiàn)以下功能:讀取D盤根目錄下的“test.txt”文件(假設(shè)文件存在且為UTF-8編碼),統(tǒng)計(jì)其中包含“Java”關(guān)鍵字的次數(shù)(不區(qū)分大小寫),并將統(tǒng)計(jì)結(jié)果寫入同目錄下的“result.txt”文件(格式:“Java出現(xiàn)次數(shù):X”)。4.(7分)定義一個(gè)泛型方法,接收一個(gè)List<T>類型的參數(shù),返回該列表中所有偶數(shù)位置的元素(索引從0開始,即返回索引0、2、4...的元素)。要求方法能處理Integer、String等類型的列表,并編寫測試代碼驗(yàn)證。參考答案一、單項(xiàng)選擇題1.B(char占2字節(jié),可存儲Unicode字符,包括中文;boolean占1位或1字節(jié)視JVM實(shí)現(xiàn);float需加F/f;long默認(rèn)值為0)2.A(intern()方法將字符串放入字符串常量池,s1指向常量池中的"java",s3通過intern()獲取同一對象)3.C(Java不支持多繼承,抽象類仍為類,只能單繼承)4.B(i++為0,i變?yōu)?;++i為2,i變?yōu)?;0+2=2)5.C(HashMap鍵可null,HashTable鍵不可null;ArrayList是數(shù)組,LinkedList是雙向鏈表;Vector線程安全,ArrayList非線程安全)6.D(tryLock()不會阻塞,返回布爾值表示是否獲取鎖)7.A(先捕獲具體異常,再執(zhí)行finally)8.D(反射可以通過ParameterizedType獲取泛型類型信息)9.B(start()啟動(dòng)線程,run()直接調(diào)用不啟動(dòng)新線程;C重寫start()未調(diào)用super.start();D的Runnable未實(shí)現(xiàn)run())10.C(程序計(jì)數(shù)器是線程私有的,存儲當(dāng)前執(zhí)行的字節(jié)碼地址;堆中對象若不可達(dá)才會被回收;虛擬機(jī)棧存局部變量表等)二、填空題1.final;final2.StringBuffer;StringBuilder3.finally;throws4.HashSet;TreeSet5.Object;Object6.getMethods();newInstance()(注:Java9后推薦使用getDeclaredConstructor().newInstance())三、簡答題1.區(qū)別:-“==”比較基本類型時(shí)是值相等,比較引用類型時(shí)是內(nèi)存地址相等;-equals()是Object類的方法,默認(rèn)比較地址,可重寫為值比較。String類重寫equals()后,比較的是字符串內(nèi)容是否相同(如"abc"和newString("abc")的equals()為true),符合實(shí)際使用需求。2.區(qū)別:-定義:抽象類用abstractclass,接口用interface;-繼承:類只能繼承1個(gè)抽象類,可實(shí)現(xiàn)多個(gè)接口;-方法:抽象類可包含抽象方法和非抽象方法,接口在Java8后支持default和static方法;-成員變量:抽象類可以有普通成員變量,接口的變量默認(rèn)是publicstaticfinal;-構(gòu)造方法:抽象類有構(gòu)造方法,接口無構(gòu)造方法。3.異同點(diǎn):-相同點(diǎn):都可實(shí)現(xiàn)線程同步,保證原子性;-不同點(diǎn):-synchronized是關(guān)鍵字,JVM實(shí)現(xiàn);ReentrantLock是類,API實(shí)現(xiàn);-synchronized自動(dòng)釋放鎖(同步塊/方法結(jié)束),ReentrantLock需手動(dòng)unlock();-ReentrantLock支持可中斷鎖、公平鎖/非公平鎖、嘗試鎖(tryLock());-synchronized不可綁定多個(gè)條件(Condition),ReentrantLock可通過Condition實(shí)現(xiàn)精準(zhǔn)喚醒。4.垃圾回收:JVM自動(dòng)管理內(nèi)存,回收不再使用的對象內(nèi)存??蛇_(dá)性分析算法:以GCRoots(如棧中引用、靜態(tài)變量引用、常量引用等)為起點(diǎn),通過引用鏈標(biāo)記不可達(dá)的對象為可回收。常見回收器:Serial(單線程)、ParallelScavenge(吞吐量優(yōu)先)、CMS(并發(fā)標(biāo)記清除)、G1(區(qū)域化分代)。5.通配符區(qū)別:-“?”:無界通配符,表示任意類型,如List<?>可接收任何類型的List;-“?extendsT”:上界通配符,允許T及其子類,如List<?extendsNumber>可接收List<Integer>;-“?superT”:下界通配符,允許T及其父類,如List<?superInteger>可接收List<Number>。使用場景:-讀取數(shù)據(jù)(生產(chǎn)者)用“?extendsT”(如從List獲取元素,保證類型是T的子類型);-寫入數(shù)據(jù)(消費(fèi)者)用“?superT”(如向List添加T類型元素,保證容器能容納T及其父類);-無讀寫需求時(shí)用“?”。四、編程題1.字符統(tǒng)計(jì)方法:```javaimportjava.util.HashMap;importjava.util.Map;importjava.util.TreeMap;publicclassCharCounter{publicstaticvoidcountChars(Stringstr){//忽略空格并轉(zhuǎn)換為字符數(shù)組char[]chars=str.replace("","").toCharArray();Map<Character,Integer>countMap=newHashMap<>();for(charc:chars){countMap.put(c,countMap.getOrDefault(c,0)+1);}//按字符順序排序,使用TreeMapTreeMap<Character,Integer>sortedMap=newTreeMap<>(countMap);StringBuilderresult=newStringBuilder();for(Map.Entry<Character,Integer>entry:sortedMap.entrySet()){result.append(entry.getKey()).append(":").append(entry.getValue()).append(",");}if(result.length()>0){result.delete(result.length()-2,result.length());//移除最后多余的逗號和空格}System.out.println(result);}publicstaticvoidmain(String[]args){countChars("helloworld");//輸出:d:1,e:1,h:1,l:3,o:2,r:1,w:1}}```2.線程安全的懶漢式單例:```javapublicclassSingleton{//使用volatile禁止指令重排序,保證多線程可見性privatestaticvolatileSingletoninstance;//私有構(gòu)造方法防止外部實(shí)例化privateSingleton(){}//雙重檢查鎖定(DCL)publicstaticSingletongetInstance(){if(instance==null){//第一次檢查,減少鎖競爭synchronized(Singleton.class){//類級別的鎖if(instance==null){//第二次檢查,防止多線程同時(shí)通過第一次檢查后重復(fù)創(chuàng)建instance=newSingleton();}}}returninstance;}}```關(guān)鍵步驟說明:-volatile:確保instance變量的可見性,防止JVM指令重排序(避免instance未完成初始化時(shí)被其他線程獲?。?;-雙重檢查:外層if減少不必要的鎖競爭,內(nèi)層if防止多線程同時(shí)進(jìn)入同步塊時(shí)重復(fù)創(chuàng)建實(shí)例;-私有構(gòu)造方法:避免外部通過new創(chuàng)建實(shí)例,保證單例唯一性。3.IO流統(tǒng)計(jì)關(guān)鍵字次數(shù):```javaimportjava.io.;importjava.nio.charset.StandardCharsets;publicclassKeywordCounter{publicstaticvoidcountJavaKeyword(){StringsourcePath="D:\\test.txt";StringtargetPath="D:\\result.txt";intcount=0;try(BufferedReaderbr=newBufferedReader(newInputStreamReader(newFileInputStream(sourcePath),StandardCharsets.UTF_8))){Stringline;while((line=br.readLine())!=null){//轉(zhuǎn)換為小寫,不區(qū)分大小寫StringlowerLine=line.toLowerCase();intindex=-1;while((index=lowerLine.indexOf("java",index+1))!=-1){count++;}}}catch(IOExceptione){e.printStackTrace();}try(BufferedWriterbw=newBufferedWriter(newOutputStreamWriter(newFileOutputStream(targetPath),StandardCharsets.UTF_8))){bw.write("Java出現(xiàn)次數(shù):"+count);}catch(IOExceptione){e.printStackTrace();}}publicstaticvoidmain(String[]args){c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 車間物品帶出帶出制度
- 財(cái)務(wù)返款制度
- 企業(yè)數(shù)字化轉(zhuǎn)型-基于IPD流程管理的研發(fā)體系
- 2025年貴州財(cái)經(jīng)職業(yè)學(xué)院筆試及答案
- 2025年濟(jì)陽中醫(yī)院護(hù)理筆試題及答案
- 2025年云南廣播電視臺筆試題及答案
- 2025年聊城年事業(yè)單位考試真題及答案
- 2025年沈陽理工自動(dòng)化筆試及答案
- 2025年大豐市人民醫(yī)院護(hù)士筆試及答案
- 2026年高中歷史知識點(diǎn)精講與模擬題
- 山東省濟(jì)南市2025-2026年高三上第一次模擬考試生物+答案
- 寒假蓄力一模沖刺+課件-2025-2026學(xué)年高三上學(xué)期寒假規(guī)劃班會課
- 2026年廣州中考政治真題變式訓(xùn)練試卷(附答案可下載)
- 2026國家國防科技工業(yè)局所屬事業(yè)單位第一批招聘62人備考題庫及參考答案詳解1套
- 2025-2026學(xué)年天津市河?xùn)|區(qū)八年級(上)期末英語試卷
- 2026馬年開學(xué)第一課:策馬揚(yáng)鞭啟新程
- 2025年初中初一語文基礎(chǔ)練習(xí)
- 2026年中央網(wǎng)信辦直屬事業(yè)單位-國家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心校園招聘備考題庫參考答案詳解
- 老友記電影第十季中英文對照劇本翻譯臺詞
- 2025年黑龍江省大慶市檢察官逐級遴選筆試題目及答案
- 國保秘密力量工作課件
評論
0/150
提交評論