版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2026年Java開發(fā)面試題及答案一、選擇題(共5題,每題2分)1.Java內存模型(JMM)中,描述不正確的是?A.JMM定義了主內存和工作內存的交互規(guī)則B.volatile關鍵字可以保證變量的可見性和有序性C.synchronized和Lock都可以實現(xiàn)線程安全,但后者性能更高D.JIT編譯器會自動將局部變量存入主內存2.SpringBoot中,如何配置多個數(shù)據(jù)源?A.使用`@Configuration`注解配置多個`DataSource`BeanB.默認只能配置一個數(shù)據(jù)源,不支持多數(shù)據(jù)源C.需要引入MyBatis-Plus插件才能支持多數(shù)據(jù)源D.使用`@EnableTransactionManagement`自動配置多數(shù)據(jù)源3.Java8新特性中,哪個方法用于收集流式處理的結果?A.`forEach()`B.`collect()`C.`reduce()`D.`sum()`4.微服務架構中,Eureka和Consul的區(qū)別在于?A.Eureka是Netflix出品,Consul是HashiCorp出品B.Eureka支持多數(shù)據(jù)中心,Consul不支持C.Consul提供更完善的健康檢查機制D.Eureka適合高并發(fā)場景,Consul適合輕量級應用5.MySQL索引類型中,最適用于全表掃描的是?A.主鍵索引B.聚集索引C.哈希索引D.全文索引二、簡答題(共5題,每題4分)6.簡述Spring事務的傳播行為和隔離級別。(要求:分別解釋事務傳播的7種行為,并列出4種隔離級別及其適用場景)7.解釋Java中的線程池原理,并說明如何優(yōu)化線程池性能。(要求:說明核心線程數(shù)、最大線程數(shù)、空閑線程存活時間的作用)8.SpringCloudGateway與Nginx在微服務網(wǎng)關方面的區(qū)別是什么?(要求:從動態(tài)路由、協(xié)議支持、可觀測性等方面對比)9.什么是Java中的AOP編程?如何實現(xiàn)日志記錄功能?(要求:解釋AOP的四大要素,并提供一個日志切面的示例代碼)10.解釋JWT(JSONWebToken)的工作原理及其優(yōu)缺點。(要求:說明JWT的組成部分,并分析其在分布式系統(tǒng)中的應用場景)三、代碼題(共5題,每題6分)11.編寫Java代碼,實現(xiàn)一個線程安全的計數(shù)器,要求支持原子操作。(要求:使用`synchronized`和`AtomicInteger`兩種方式實現(xiàn))12.使用Java8StreamAPI,將一個列表的每個字符串首字母大寫,并返回新列表。(要求:提供完整代碼,并說明優(yōu)化點)13.編寫SpringBoot代碼,實現(xiàn)一個RESTfulAPI,用于創(chuàng)建和查詢用戶信息。(要求:使用`@RestController`和`@PostMapping`,并添加異常處理)14.使用MyBatisPlus編寫SQL語句,查詢某個部門下工資最高的員工信息。(要求:使用`SELECT`語句和`GROUPBY`,并說明索引優(yōu)化方案)15.編寫Kafka生產(chǎn)者代碼,實現(xiàn)異步發(fā)送消息到指定主題。(要求:使用`send()`方法的異步模式,并處理發(fā)送失敗的情況)四、設計題(共3題,每題10分)16.設計一個高并發(fā)的秒殺系統(tǒng),需要考慮哪些關鍵點?(要求:說明限流、分布式鎖、數(shù)據(jù)庫優(yōu)化等方案)17.設計一個分布式配置中心,如何保證配置的實時性和一致性?(要求:對比SpringCloudConfig和Nacos的方案,并說明適用場景)18.設計一個電商平臺的訂單系統(tǒng),如何保證訂單狀態(tài)的正確性?(要求:說明事務、消息隊列、狀態(tài)機的設計思路)五、綜合題(共2題,每題15分)19.結合SpringCloudAlibaba,設計一個分布式事務解決方案。(要求:說明Seata的TC架構,并對比本地事務和分布式事務的適用場景)20.分析一個高并發(fā)秒殺系統(tǒng)的性能瓶頸,并提出優(yōu)化方案。(要求:從數(shù)據(jù)庫、緩存、消息隊列等方面提出至少3個優(yōu)化措施)答案及解析一、選擇題答案及解析1.D解析:局部變量存儲在工作內存中,不會自動存入主內存,需要顯式使用`volatile`或`synchronized`。-A正確:JMM定義了主內存和工作內存的交互規(guī)則。-B正確:`volatile`保證可見性和有序性。-C正確:Lock比`synchronized`更靈活,性能可能更高。-D錯誤:局部變量不會自動存入主內存。2.A解析:SpringBoot支持多數(shù)據(jù)源配置,通過`@Configuration`自定義`DataSource`Bean。-B錯誤:默認支持單數(shù)據(jù)源,但可擴展。-C錯誤:MyBatis-Plus只是ORM框架,與多數(shù)據(jù)源無關。-D錯誤:`@EnableTransactionManagement`是事務管理配置,與數(shù)據(jù)源無關。3.B解析:`collect()`用于收集流式處理的結果,其他選項僅用于操作或聚合。-A錯誤:`forEach()`用于遍歷,不收集結果。-C錯誤:`reduce()`用于聚合,但`collect()`更通用。-D錯誤:`sum()`僅用于數(shù)值累加。4.C解析:Consul的健康檢查機制更完善,支持腳本檢查。-A正確:出品公司不同,但無關性能。-B錯誤:兩者都支持多數(shù)據(jù)中心。-C正確:Consul支持更靈活的健康檢查。-D錯誤:兩者性能取決于配置,非固定差異。5.B解析:聚集索引按主鍵排序,最適用于全表掃描。-A錯誤:主鍵索引是聚集索引的一種。-B正確:聚集索引存儲數(shù)據(jù)行,全表掃描效率最高。-C錯誤:哈希索引不支持范圍查詢。-D錯誤:全文索引用于文本搜索,非全表掃描。二、簡答題答案及解析6.Spring事務傳播行為和隔離級別-事務傳播行為(7種):-`REQUIRED`:如果當前有事務,加入該事務;如果沒有事務,新建事務。-`REQUIRES_NEW`:新建事務,如果當前有事務,掛起當前事務。-`SUPPORTS`:如果當前有事務,加入該事務;如果沒有事務,以非事務方式執(zhí)行。-`MANDATORY`:必須在新事務中執(zhí)行;如果當前有事務,加入該事務。-`NOT_SUPPORTED`:以非事務方式執(zhí)行;如果當前有事務,掛起當前事務。-`NEVER`:以非事務方式執(zhí)行;如果當前有事務,拋出異常。-`NATIVE`:以本地事務方式執(zhí)行;如果當前有事務,加入該事務。-隔離級別(4種):-`READ_UNCOMMITTED`:允許臟讀、不可重復讀、幻讀(最低級別)。-`READ_COMMITTED`:允許不可重復讀、幻讀(數(shù)據(jù)庫默認)。-`REPEATABLE_READ`:允許幻讀(InnoDB默認)。-`SERIALIZABLE`:完全隔離,防止所有并發(fā)問題(最高級別,性能最低)。7.線程池原理及優(yōu)化-原理:-核心線程數(shù):保持存活的最小線程數(shù),即使空閑也會存活。-最大線程數(shù):池中最大線程數(shù),超出會排隊或拒絕。-空閑存活時間:線程空閑后存活時間,超時會被回收。-阻塞隊列:存儲等待執(zhí)行的任務。-優(yōu)化:-根據(jù)CPU密集型或IO密集型調整線程數(shù)。-使用合適的阻塞隊列(如`LinkedBlockingQueue`)。-避免過大的線程池,防止內存溢出。8.SpringCloudGateway與Nginx對比-動態(tài)路由:Gateway支持動態(tài)路由,Nginx需手動修改配置。-協(xié)議支持:Gateway支持HTTP/2、WebSocket,Nginx較舊。-可觀測性:Gateway提供SpringBootActuator支持,Nginx需額外配置。-網(wǎng)關功能:Gateway支持斷路器、重試等微服務特性,Nginx僅路由。9.AOP編程及日志示例-AOP要素:-連接點(JoinPoint):方法執(zhí)行點。-切入點(Pointcut):匹配連接點的表達式。-通知(Advice):切點執(zhí)行時的增強邏輯(如日志、事務)。-織入(Weaving):將通知應用到切點。-日志切面示例(SpringAOP):java@Aspect@ComponentpublicclassLoggingAspect{@Before("execution(com.example.service..(..))")publicvoidlogBefore(JoinPointjoinPoint){System.out.println("方法:"+joinPoint.getSignature().getName());}}10.JWT原理及優(yōu)缺點-原理:-Header:算法類型(HS256)、內容類型(JWT)。-Payload:用戶信息(sub)、過期時間(exp)、發(fā)行者(iss)。-Signature:Header+Payload+密鑰,用于驗證。-優(yōu)點:-無狀態(tài),適合分布式系統(tǒng)。-自包含,無需數(shù)據(jù)庫查詢。-缺點:-不適合敏感信息存儲(可能被解密)。-過期時間有限,需頻繁刷新。三、代碼題答案及解析11.線程安全計數(shù)器-synchronized版:javapublicclassSyncCounter{privateintcount=0;publicsynchronizedvoidincrement(){count++;}publicsynchronizedintgetCount(){returncount;}}-AtomicInteger版:javaimportjava.util.concurrent.atomic.AtomicInteger;publicclassAtomicCounter{privateAtomicIntegercount=newAtomicInteger(0);publicvoidincrement(){count.incrementAndGet();}publicintgetCount(){returncount.get();}}12.StreamAPI首字母大寫javaList<String>list=Arrays.asList("java","spring","kafka");List<String>upper=list.stream().map(s->Character.toUpperCase(s.charAt(0))+s.substring(1)).collect(Collectors.toList());//輸出:[Java,Spring,Kafka]13.RESTfulAPI示例java@RestController@RequestMapping("/users")publicclassUserController{@PostMappingpublicResponseEntity<User>createUser(@RequestBodyUseruser){//保存用戶邏輯returnResponseEntity.ok(user);}@GetMapping("/{id}")publicResponseEntity<User>getUser(@PathVariableLongid){//查詢用戶邏輯returnResponseEntity.ok(newUser());}}14.MyBatisPlus查詢工資最高員工sqlSELECTFROMemployeeeWHEREe.salary=(SELECTMAX(salary)FROMemployeeWHEREdepartment_id=#{departmentId})15.Kafka異步發(fā)送消息javaPropertiesprops=newProperties();props.put("bootstrap.servers","localhost:9092");props.put("key.serializer","StringSerializer");props.put("value.serializer","StringSerializer");KafkaProducer<String,String>producer=newKafkaProducer<>(props);producer.send(newProducerRecord<>("topic","key","value"),newCallback(){@OverridepublicvoidonCompletion(recordMetadata,e){if(e!=null){e.printStackTrace();}}});四、設計題答案及解析16.秒殺系統(tǒng)設計-關鍵點:-限流:熔斷器(Hystrix/Sentinel)、令牌桶算法。-分布式鎖:Redisson/Lock,防止超賣。-數(shù)據(jù)庫優(yōu)化:樂觀鎖/悲觀鎖,隔離級別`SERIAL
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年天府新區(qū)信息職業(yè)學院單招綜合素質考試模擬試題含詳細答案解析
- 2026年云南能源職業(yè)技術學院單招職業(yè)技能考試參考題庫含詳細答案解析
- 2026年黑龍江幼兒師范高等??茖W校單招職業(yè)技能考試備考題庫含詳細答案解析
- 2026年長沙電力職業(yè)技術學院單招綜合素質筆試參考題庫含詳細答案解析
- 2026年阿拉善職業(yè)技術學院高職單招職業(yè)適應性測試備考題庫及答案詳細解析
- 2026年西寧城市職業(yè)技術學院單招綜合素質考試參考題庫含詳細答案解析
- 2026年安順職業(yè)技術學院單招綜合素質筆試模擬試題含詳細答案解析
- 2026年上海立達學院單招綜合素質考試參考題庫含詳細答案解析
- 2026年廣西工業(yè)職業(yè)技術學院單招綜合素質筆試參考題庫含詳細答案解析
- 2026年廣西交通職業(yè)技術學院單招綜合素質筆試模擬試題含詳細答案解析
- 嵊州市二年級上學期期末檢測語文試卷(PDF版含答案)
- 2024年國務院安全生產(chǎn)和消防工作考核要點解讀-企業(yè)層面
- 中建雙優(yōu)化典型案例清單
- 小學數(shù)學解題研究(小學教育專業(yè))全套教學課件
- 數(shù)據(jù)生命周期管理與安全保障
- 早期胃癌出院報告
- 吊頂轉換層設計圖集
- 優(yōu)勝教育機構員工手冊范本規(guī)章制度
- 鉀鈉氯代謝與紊亂
- 安徽省小型水利工程施工質量檢驗與評定規(guī)程(2023校驗版)
- 山地造林施工設計方案經(jīng)典
評論
0/150
提交評論