版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2025年海量高質(zhì)量java基礎(chǔ)試題試卷及答案一、單項(xiàng)選擇題(每題2分,共20分)1.以下關(guān)于Java基本數(shù)據(jù)類(lèi)型的描述,正確的是()A.boolean類(lèi)型變量在JVM中實(shí)際存儲(chǔ)為1字節(jié)B.char類(lèi)型采用UTF-8編碼,可存儲(chǔ)任意Unicode字符C.float類(lèi)型變量聲明時(shí)賦值3.14會(huì)導(dǎo)致編譯錯(cuò)誤D.long類(lèi)型變量的默認(rèn)初始值為0L2.關(guān)于類(lèi)的訪問(wèn)修飾符,以下說(shuō)法錯(cuò)誤的是()A.類(lèi)的訪問(wèn)修飾符可以是public、default、protectedB.一個(gè)Java源文件中最多只能有一個(gè)public類(lèi)C.默認(rèn)訪問(wèn)修飾符(包級(jí)私有)的類(lèi)只能被同包類(lèi)訪問(wèn)D.protected修飾的類(lèi)無(wú)法被跨包的非子類(lèi)訪問(wèn)3.給定代碼片段:```javaStrings1="abc";Strings2=newString("abc");System.out.println(s1==s2);```輸出結(jié)果為()A.trueB.falseC.編譯錯(cuò)誤D.運(yùn)行時(shí)異常4.以下關(guān)于方法重載(Overload)的要求,錯(cuò)誤的是()A.參數(shù)列表必須不同(類(lèi)型、順序或個(gè)數(shù))B.方法名必須相同C.返回值類(lèi)型必須不同D.可以有不同的訪問(wèn)修飾符5.關(guān)于異常處理,以下代碼的輸出是()```javatry{inta=10/0;}catch(ArithmeticExceptione){System.out.println("捕獲算術(shù)異常");}catch(Exceptione){System.out.println("捕獲通用異常");}finally{System.out.println("執(zhí)行finally");}```A.捕獲算術(shù)異常→執(zhí)行finallyB.捕獲通用異?!鷪?zhí)行finallyC.執(zhí)行finally(無(wú)異常輸出)D.運(yùn)行時(shí)異常未被捕獲6.以下集合類(lèi)中,底層基于哈希表實(shí)現(xiàn)且線(xiàn)程安全的是()A.HashMapB.HashtableC.TreeMapD.LinkedHashMap7.給定線(xiàn)程代碼:```javapublicclassMyThreadextendsThread{publicvoidrun(){System.out.println(Thread.currentThread().getName());}}publicstaticvoidmain(String[]args){MyThreadt=newMyThread();t.run();}```程序輸出為()A.主線(xiàn)程名稱(chēng)(如main)B.新線(xiàn)程名稱(chēng)(如Thread-0)C.編譯錯(cuò)誤D.運(yùn)行時(shí)異常8.關(guān)于接口和抽象類(lèi)的區(qū)別,以下說(shuō)法正確的是()A.抽象類(lèi)可以有構(gòu)造方法,接口不能有B.接口中所有方法默認(rèn)是publicabstract,抽象類(lèi)中方法默認(rèn)是protectedC.一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口,但只能繼承一個(gè)抽象類(lèi)D.接口可以有成員變量,抽象類(lèi)不能有9.以下IO流中,屬于字節(jié)流且支持緩沖的是()A.FileReaderB.BufferedInputStreamC.ObjectOutputStreamD.PrintWriter10.關(guān)于JVM內(nèi)存區(qū)域,以下哪部分由垃圾回收器管理()A.程序計(jì)數(shù)器B.虛擬機(jī)棧C.堆D.本地方法棧二、填空題(每空2分,共20分)1.Java中實(shí)現(xiàn)多態(tài)的三個(gè)必要條件是:繼承、______、______。2.String類(lèi)被聲明為final,因此不能被______;其內(nèi)部使用______數(shù)組存儲(chǔ)字符(JDK9及以后)。3.異常處理中,______塊中的代碼無(wú)論是否發(fā)生異常都會(huì)執(zhí)行;若要在catch塊中拋出新異常同時(shí)保留原始異常信息,需使用______關(guān)鍵字。4.集合框架中,List接口的典型實(shí)現(xiàn)類(lèi)有ArrayList(基于______)和LinkedList(基于______)。5.線(xiàn)程的生命周期包括新建、就緒、運(yùn)行、______和終止五種狀態(tài);調(diào)用Thread的______方法會(huì)使線(xiàn)程進(jìn)入阻塞狀態(tài),直到被喚醒。三、簡(jiǎn)答題(每題8分,共32分)1.請(qǐng)說(shuō)明值傳遞與引用傳遞的區(qū)別,并舉例說(shuō)明Java中參數(shù)傳遞的實(shí)際方式。2.簡(jiǎn)述synchronized關(guān)鍵字的三種使用方式及其底層實(shí)現(xiàn)原理。3.對(duì)比ArrayList和LinkedList在插入、刪除和隨機(jī)訪問(wèn)操作上的性能差異,并說(shuō)明各自適用場(chǎng)景。4.什么是內(nèi)存泄漏?Java中可能導(dǎo)致內(nèi)存泄漏的常見(jiàn)場(chǎng)景有哪些?四、編程題(共28分)1.(10分)編寫(xiě)一個(gè)方法,輸入一個(gè)字符串,統(tǒng)計(jì)其中每個(gè)字符(區(qū)分大小寫(xiě))出現(xiàn)的次數(shù),返回結(jié)果用Map<Character,Integer>表示。要求處理空字符串和null輸入,確保線(xiàn)程安全。2.(10分)實(shí)現(xiàn)一個(gè)線(xiàn)程安全的餓漢式單例模式,并解釋其線(xiàn)程安全的原理。若需要延遲加載(懶漢式),需如何修改?此時(shí)為什么需要雙重檢查鎖定(Double-CheckedLocking)?3.(8分)給定一個(gè)整數(shù)數(shù)組,使用JavaIO將數(shù)組中的偶數(shù)寫(xiě)入文件“even.txt”,奇數(shù)寫(xiě)入文件“odd.txt”,要求使用緩沖流提高效率。答案一、單項(xiàng)選擇題1.C(float賦值需加f,3.14默認(rèn)是double,直接賦值會(huì)編譯錯(cuò)誤)2.A(類(lèi)的訪問(wèn)修飾符只能是public或默認(rèn),protected和private不能修飾頂層類(lèi))3.B(s1指向字符串常量池,s2指向堆內(nèi)存新對(duì)象,==比較地址)4.C(重載不要求返回值不同)5.A(ArithmeticException是具體異常,優(yōu)先匹配)6.B(Hashtable線(xiàn)程安全,HashMap非線(xiàn)程安全)7.A(直接調(diào)用run()方法不會(huì)啟動(dòng)新線(xiàn)程,仍在主線(xiàn)程執(zhí)行)8.C(抽象類(lèi)和接口都可以有構(gòu)造方法/成員變量;接口方法默認(rèn)publicabstract,抽象類(lèi)方法默認(rèn)包級(jí)私有)9.B(BufferedInputStream是字節(jié)緩沖流)10.C(堆是GC主要管理區(qū)域)二、填空題1.方法重寫(xiě);父類(lèi)引用指向子類(lèi)對(duì)象2.繼承;byte(JDK9后String使用byte數(shù)組+編碼標(biāo)識(shí))3.finally;initCause(或addSuppressed)4.動(dòng)態(tài)數(shù)組;雙向鏈表5.阻塞;wait(或sleep、join)三、簡(jiǎn)答題1.區(qū)別:值傳遞是復(fù)制變量的實(shí)際值,修改副本不影響原變量;引用傳遞是復(fù)制對(duì)象的引用地址,修改副本指向的對(duì)象會(huì)影響原變量。Java中所有參數(shù)傳遞都是值傳遞:基本類(lèi)型傳遞值的拷貝,引用類(lèi)型傳遞引用地址的拷貝。例如:```javapublicstaticvoidchange(inta,int[]b){a=10;//不影響原int變量b[0]=10;//會(huì)修改原數(shù)組內(nèi)容(地址拷貝)}```2.三種方式:-修飾實(shí)例方法:鎖當(dāng)前對(duì)象(this),底層通過(guò)對(duì)象頭的MarkWord實(shí)現(xiàn)-修飾靜態(tài)方法:鎖當(dāng)前類(lèi)的Class對(duì)象,底層通過(guò)Class對(duì)象的Monitor實(shí)現(xiàn)-修飾代碼塊:鎖指定對(duì)象(如synchronized(obj)),底層通過(guò)MonitorEnter/MonitorExit指令3.性能差異:-隨機(jī)訪問(wèn)(get/set):ArrayList是O(1)(數(shù)組下標(biāo)),LinkedList是O(n)(遍歷鏈表)-中間插入/刪除:ArrayList需移動(dòng)元素(O(n)),LinkedList只需修改指針(O(1),但定位節(jié)點(diǎn)需O(n))-尾部插入:ArrayList可能觸發(fā)擴(kuò)容(均攤O(1)),LinkedList是O(1)適用場(chǎng)景:ArrayList適合頻繁隨機(jī)訪問(wèn),LinkedList適合頻繁首尾操作或中間插入(數(shù)據(jù)量較大時(shí))4.內(nèi)存泄漏指對(duì)象不再被使用但未被GC回收,導(dǎo)致內(nèi)存占用持續(xù)增加。常見(jiàn)場(chǎng)景:-未關(guān)閉的資源(如IO流、數(shù)據(jù)庫(kù)連接)-靜態(tài)集合類(lèi)持有對(duì)象引用(生命周期與類(lèi)加載一致)-內(nèi)部類(lèi)持有外部類(lèi)強(qiáng)引用(如非靜態(tài)內(nèi)部類(lèi))-緩存未設(shè)置過(guò)期策略(如HashMap未清理舊數(shù)據(jù))四、編程題1.實(shí)現(xiàn)代碼:```javaimportjava.util.Collections;importjava.util.HashMap;importjava.util.Map;publicclassCharCounter{//使用線(xiàn)程安全的ConcurrentHashMap或同步方法保證線(xiàn)程安全publicstaticMap<Character,Integer>countChars(Stringinput){if(input==null){returnCollections.emptyMap();}Map<Character,Integer>result=newHashMap<>();for(charc:input.toCharArray()){result.put(c,result.getOrDefault(c,0)+1);}//返回不可修改的Map防止外部修改returnCollections.unmodifiableMap(result);}}```2.餓漢式單例:```javapublicclassSingleton{//類(lèi)加載時(shí)初始化,天然線(xiàn)程安全(類(lèi)加載機(jī)制保證)privatestaticfinalSingletonINSTANCE=newSingleton();privateSingleton(){}//私有構(gòu)造publicstaticSingletongetInstance(){returnINSTANCE;}}```懶漢式修改(雙重檢查鎖定):```javapublicclassSingleton{//volatile防止指令重排(避免INSTANCE未初始化時(shí)被其他線(xiàn)程獲?。﹑rivatestaticvolatileSingletonINSTANCE;privateSingleton(){}publicstaticSingletongetInstance(){if(INSTANCE==null){//第一次檢查(減少鎖競(jìng)爭(zhēng))synchronized(Singleton.class){if(INSTANCE==null){//第二次檢查(防止多線(xiàn)程重復(fù)創(chuàng)建)INSTANCE=newSingleton();}}}returnINSTANCE;}}```雙重檢查原因:第一次檢查避免不必要的鎖競(jìng)爭(zhēng);第二次檢查防止多個(gè)線(xiàn)程同時(shí)通過(guò)第一次檢查后重復(fù)創(chuàng)建實(shí)例;volatile保證INSTANCE的可見(jiàn)性和禁止指令重排(避免構(gòu)造函數(shù)未完成時(shí)返回引用)。3.文件寫(xiě)入代碼:```javaimportjava.io.;importjava.util.Arrays;publicclassNumberFileWriter{publicstaticvoidwriteNumbers(int[]arr)throwsIOException{try(BufferedWriterevenWriter=newBufferedWriter(newFileWriter("even.txt"));BufferedWriteroddWriter=newBufferedWriter(newFileWriter("odd.txt"))){for(intnum:arr){if(num%2==0){evenWriter.write(String.valueOf(num));evenWriter.newLine();}else{
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- CCAA - 2023年01月建筑施工領(lǐng)域?qū)I(yè)答案及解析 - 詳解版(65題)
- 營(yíng)銷(xiāo)業(yè)務(wù)市場(chǎng)調(diào)查報(bào)告作業(yè)模板
- 2026年上海市松江區(qū)中考一模物理試題(含答案)
- 養(yǎng)老院志愿者服務(wù)管理制度
- 養(yǎng)老院環(huán)境保護(hù)管理制度
- 企業(yè)項(xiàng)目管理制度
- 統(tǒng)編版(2024)七年級(jí)上冊(cè)歷史期末復(fù)習(xí):材料分析題解題方法+50題練習(xí)題(含答案解析)
- 建立健全現(xiàn)代企業(yè)制度提升管理水平
- 2025年福建省人資集團(tuán)漳州地區(qū)招聘考試真題
- 手持小型動(dòng)力工具制作工操作管理能力考核試卷含答案
- 中藥學(xué)教材課件
- 夢(mèng)雖遙追則能達(dá)愿雖艱持則可圓模板
- 能源與動(dòng)力工程測(cè)試技術(shù) 課件 第一章 緒論確定
- 配件售后管理制度規(guī)范
- 浙江省紹興市上虞區(qū)2024-2025學(xué)年七年級(jí)上學(xué)期期末語(yǔ)文試題(解析版)
- 《隸書(shū)千字文》-清席夔
- 2024校長(zhǎng)在寒假期末教職工大會(huì)上精彩發(fā)言主要引用3個(gè)關(guān)鍵詞善待自己改變自己提升自己
- 《鐵路技術(shù)管理規(guī)程》(普速鐵路部分)
- 2024-2025年度“地球小博士”全國(guó)地理科普知識(shí)大賽參考試題庫(kù)(含答案)
- 北師大版六年級(jí)上冊(cè)分?jǐn)?shù)混合運(yùn)算100題帶答案
- 2024年度工程成本控制優(yōu)化合同
評(píng)論
0/150
提交評(píng)論