2021年的互聯(lián)網(wǎng)行業(yè)競(jìng)爭(zhēng)越來(lái)越嚴(yán)峻尤泽,面試也是越來(lái)越難,一直以來(lái)我都想整理一套完美的面試寶典,奈何難抽出時(shí)間安吁,這套1000+道的Java面試手冊(cè)我整理了整整1個(gè)月,上傳到Git上目前star數(shù)達(dá)到了30K+
這套互聯(lián)網(wǎng)Java工程師面試題包括了:MyBatis燃辖、ZK鬼店、Dubbo、EL黔龟、Redis妇智、MySQL、并發(fā)編程氏身、Java面試巍棱、Spring、微服務(wù)蛋欣、Linux航徙、Springboot、SpringCloud陷虎、MQ到踏、Kafka面試專題(共485頁(yè),32W字)
阿里P8熬了一個(gè)月肝出這份32W字的Java面試手冊(cè)尚猿,有需要學(xué)習(xí)的小伙伴只需點(diǎn)贊后添加VX:czh9115 即可來(lái)免費(fèi)領(lǐng)取了窝稿!
Java面試題目錄
MyBatis面試篇
什么是Mybatis?Mybaits的優(yōu)點(diǎn):myBatis框架的缺點(diǎn):MyBatis框架適用場(chǎng)合:MyBatis與Hibernate有哪些不同?#和$的區(qū)別是什么?當(dāng)實(shí)體類中的屬性名和表中的字段名不一樣·怎么辦?模糊查詢like語(yǔ)詞該怎么寫?通常一個(gè)Xml映射文件,都會(huì)寫一個(gè)Dao接口與之對(duì)應(yīng),請(qǐng)問(wèn),這個(gè)Dao接口的工作原理是tDaMybatiz是如何進(jìn)行分頁(yè)的?分頁(yè)插件的原理是什么?Mybati s是如何將sq執(zhí)行結(jié)果封裝為目標(biāo)對(duì)象并返回的都有哪些映射形式?如何執(zhí)行批里插入?如何獲取自動(dòng)生成的(主)鍵值?14、在mapper中如何傳遞多個(gè)參數(shù)?Mybatis動(dòng)態(tài)sql有什么用?執(zhí)行原理?有哪些動(dòng)態(tài)sql?Xm1映射文件中,除了常見(jiàn)的select |insert lupdae |delete標(biāo)簽之外凿掂,還有為什么說(shuō)Mybati z是半自動(dòng)動(dòng)ORM映射工具?它與全自動(dòng)的區(qū)別在哪里?—對(duì)—伴榔、—對(duì)多的關(guān)聯(lián)查詢?nèi)?/li>MyBati s實(shí)現(xiàn)—對(duì)—有幾種方式?具體怎么操作的?MyBatiz實(shí)現(xiàn)—對(duì)多有幾種方式,怎么操作的?Mybatiz是否支持延遲加載如果支持,它的實(shí)現(xiàn)原理是什么?Mybati s的一級(jí)、二級(jí)緩存:什么是MyBati s的接口綁定?有哪些實(shí)現(xiàn)方式?使用MyBatis的的mapper接口調(diào)用時(shí)有哪些要求?Mapper編寫有哪幾種方式?簡(jiǎn)述Mybati s的插件運(yùn)行原理,以及如何編Zookeeper面試篇
ZooKeeper面j試題庄萎?ZooKeeper提供了什么踪少?Zookeeper文件系統(tǒng)ZAB協(xié)議?四種類型的數(shù)據(jù)節(jié)點(diǎn)ZnodeZookeeper "atcher機(jī)制–數(shù)據(jù)變更通知客戶端注冊(cè)watcher實(shí)現(xiàn)服務(wù)端處理watcher實(shí)現(xiàn)客戶端回調(diào)atcherACL權(quán)限控制機(jī)制Chroot特性會(huì)話管理服務(wù)器角色Zookeeper 下Server工作狀態(tài)數(shù)據(jù)同步zookeeper是如何保證事務(wù)的順序一致性的?分布式集群中為什么會(huì)有Master?16. zk節(jié)點(diǎn)宕機(jī)如何處理?zookeeper負(fù)載均衡和nginx負(fù)載均衡區(qū)別Zookeeper有哪幾種幾種部署模式?集群最少要幾臺(tái)機(jī)器,集群規(guī)則是怎樣的?集群支持動(dòng)態(tài)添加機(jī)器嗎?Zookeeper對(duì)節(jié)點(diǎn)的wat ch監(jiān)聽(tīng)通知是永久的嗎?為什么不是永發(fā)的?Zookeeper的java客戶端都有哪些?chubby是什么,和zookeeper比你怎么看?說(shuō)幾個(gè)zookeeper常用的命令糠涛。ZAE和F axos算法的聯(lián)系與區(qū)別?Zookeeper的典型應(yīng)用場(chǎng)景Dubbo面試篇
為什么要用Dubbo?Dubbo的整體架構(gòu)設(shè)計(jì)有哪些分層?默認(rèn)使用的是什么通信框架,還有別的選擇嗎?服務(wù)調(diào)用是阻塞的嗎?一般使用什么注冊(cè)中心?還有別的選擇嗎?默認(rèn)使用什么序列化框架,你知道的還有哪些?服務(wù)提供者能實(shí)現(xiàn)失效提出是什么原理?后秉馏、服務(wù)上線怎么不影響舊版本?如何解決服務(wù)調(diào)用鏈過(guò)長(zhǎng)的問(wèn)題?10、說(shuō)說(shuō)核心的配置有哪些?Dubbo推薦用什么協(xié)議?同一個(gè)服務(wù)多個(gè)注冊(cè)的情況下可以直連某一個(gè)服務(wù)嗎?畫—畫服務(wù)注冊(cè)與發(fā)現(xiàn)的流程圖?Dubbo集群容錯(cuò)有幾種方案?Dubb脱羡。服務(wù)降級(jí),失敗重試怎么做?Dubb萝究。使用過(guò)程中都遇到了些什么問(wèn)題?Dubbo Monitor實(shí)現(xiàn)原理?Dubbo用到哪些設(shè)計(jì)模式?Dubbo配置文件是如何加載到Spring中的?Dubbo SPI和Java SPI區(qū)別?Dubb。支持分布式事務(wù)嗎?Dubbo可以對(duì)結(jié)果進(jìn)行緩存嗎?服務(wù)上線怎么兼容舊版本?Dubbo必須依賴的包有哪些?Dubbo telnet命令能做什么?Dubbo支持服務(wù)降級(jí)嗎?Dubbo如何優(yōu)雅停機(jī)?Dubbo和Dubbox之間的區(qū)別?Dubbo和Spring Cloud的區(qū)別?你還了解別的分布式框架嗎?Redis面試篇
什么是Redis?Redis的數(shù)據(jù)類型?使用Redis有哪些好處?Rediz相比Memcached有哪些優(yōu)勢(shì)?Memcache與Redi s的區(qū)別都有哪些?Redis是單進(jìn)程還是單線程的?一個(gè)字符串類型的值 能存儲(chǔ)最大容積是多少?Redi s的持久化機(jī)制是什么?各自的優(yōu)缺點(diǎn)?Redi s常見(jiàn)性能問(wèn)題和解決方案:10锉罐、redis過(guò)期鍵的刪除策略?Redis的回收策略(淘汰策略〉?為什么ediz需要把所有數(shù)據(jù)放到內(nèi)存中?13帆竹、Redi z的同步機(jī)制了解么?Fipeline有什么好處,為什么要用pipeline?是否使用過(guò)Redi z集群,集群的原理是什么?Redi s集群方案什么情況下會(huì)導(dǎo)致整個(gè)集群不可用?Redi s支持的Java客戶端都有哪些?官方推薦用哪個(gè)?Jedi z與Redi sson對(duì)比有什么優(yōu)缺點(diǎn)?19、Redi s如何設(shè)置密碼及驗(yàn)證密碼?20脓规、說(shuō)說(shuō)Redi s哈希槽的概念:?Redi z集群的主從復(fù)制模型是怎樣的?22栽连、Redi =集群會(huì)有些操作丟失嗎?為什么?23 、 Redi z集群之間是如何復(fù)制的?Rediz集群最大節(jié)點(diǎn)個(gè)數(shù)是多少?25 、Redi z集群如何選擇數(shù)據(jù)庫(kù)?26秒紧、怎么測(cè)試Redis的連通性?27绢陌、怎么理解Rediz事務(wù)?Redi z事務(wù)相關(guān)的命令有哪幾個(gè)?Redis key的過(guò)期樣間和永久有效分別怎么設(shè)置?Redi s如何做內(nèi)存優(yōu)化?Redis回收進(jìn)程如何工作的?都有哪些辦法可以降低Redi s的內(nèi)存使用情況呢?Redi s的內(nèi)存用完了會(huì)發(fā)生什么?—個(gè)Redi z實(shí)例最多能存放多少的keys?List 、 set 熔恢、 Sorted set他們最多能存MySQL.里有2000w教據(jù),redi =中只存20w的數(shù)據(jù),如何保證redis中的數(shù)據(jù)都是熱點(diǎn)Redi s最適合的場(chǎng)景?假假女口Rediz里面有1億個(gè)key其中有10w個(gè)key是以某個(gè)固定的已知的前綴開(kāi)頭的,如果將它如果有大量的key需要設(shè)置同一時(shí)間過(guò)期,—般需要注意什么?使用過(guò)Rediz做異步隊(duì)列絡(luò)·梅晶福系星有?key ,其中有10w個(gè)ke.個(gè)固定的已知的前綴開(kāi)使用過(guò)Redi s分布式鎖主是針?biāo)嚿惺聦W(xué)”MySQL面試篇
MySQL中有哪幾種鎖?MySQL中有哪些不同的表格?簡(jiǎn)述在MySQI數(shù)據(jù)庫(kù)中My工SAM和InnoDB日的區(qū)別MysQL中InnoDB支持的四種事務(wù)隔離級(jí)別名稱,以及逐級(jí)之間的區(qū)別?CHAR和VARCHAR的區(qū)別?主鍵和候選鍵有什么區(qū)別?myisamchk是用來(lái)做什么的?如果一個(gè)表有一列定義為TIMESTAMP脐湾,將發(fā)生什么?你怎么看到為表格定義的所有索引?LTRE聲明中的%和_是什么意思?列對(duì)比運(yùn)算符是什么?BLDE和TEXT有什么區(qū)別?MysQL_fetch_array和MySQL_fetch_object的區(qū)別是什么?MyISAM表格將在哪里存儲(chǔ),并且還提供其存儲(chǔ)格式?MySQI如何優(yōu)化DISTIHCT?如何顯示前50 行?可以使用多少列創(chuàng)建索引?Now( )和CURRERT_DATE()有什么區(qū)別?什么是非標(biāo)準(zhǔn)字符串類型?什么是通用sQI函數(shù)?MySQL支持事務(wù)嗎?MysQL里記錄貨幣用什么字段類型好MySQL有關(guān)權(quán)限的表都有哪幾個(gè)?列的字符串類型可以是什么?MySQI教據(jù)庫(kù)作發(fā)布系統(tǒng)的存儲(chǔ),一天五萬(wàn)條以上的增里預(yù)計(jì)運(yùn)維三年網(wǎng)藝優(yōu)化?鎖的優(yōu)化策略索引的底層實(shí)現(xiàn)原理和優(yōu)化什么情況下設(shè)置了索引但無(wú)法使用實(shí)踐中如何優(yōu)化MysQL優(yōu)化數(shù)據(jù)庫(kù)的方法簡(jiǎn)單描述MySQL中,索引叙淌,主鍵,唯一索引·聯(lián)合索引的區(qū)別對(duì)數(shù)據(jù)庫(kù)的性能有什么影響《從讀寫兩數(shù)據(jù)庫(kù)中的事務(wù)是什么?SQL注入漏洞產(chǎn)生的原因?如何防止?為表中得字段選擇合適得數(shù)據(jù)類型存儲(chǔ)時(shí)期對(duì)于關(guān)系型數(shù)據(jù)庫(kù)而言,索引是相當(dāng)重要的概念,請(qǐng)回答有關(guān)索引的幾個(gè)問(wèn)題:解釋MySQL外連接秤掌、內(nèi)連接與自連接的區(qū)別Myql中的事務(wù)回滾機(jī)制概述SQL語(yǔ)言包括哪幾部分每部分都有哪些操作關(guān)鍵亨學(xué)?完整性約束包括哪些?什么是鎖?什么叫視圖游標(biāo)是什么?什么是存儲(chǔ)過(guò)程?用什么來(lái)調(diào)用?如何通俗地理解三個(gè)范式?什么是基本表?什么是視圖?i試述視圖的優(yōu)點(diǎn)?HUI.L是什么意思主鍵、外鍵和索引的區(qū)別你可以用什么來(lái)確保表格里的字段只接受特定范圍里的值?說(shuō)說(shuō)對(duì)SQL語(yǔ)句優(yōu)化有哪些方法?《選擇幾條)Java并發(fā)編程篇
并發(fā)編程三要素?實(shí)現(xiàn)可見(jiàn)性的方法有哪些?多線程的價(jià)值?創(chuàng)建線程的有哪些方式?創(chuàng)建線程的三種方式的對(duì)比?線程的狀態(tài)流轉(zhuǎn)圖Jave線程具有五中基本狀態(tài)什么是線程池?有哪幾種創(chuàng)建方式?四種線程池的創(chuàng)建線程池的優(yōu)點(diǎn)?常用的并發(fā)I具類有哪些?Cycli cB arr i er和CountDownLatch的區(qū)別synchr oni zed的作用?volatile關(guān)鍵字的作用什么是CASCAS的問(wèn)題什么是Future?什么是AQSA0S支持兩種同步方式:Re adYri teLock是什么FutuwreTask是什么synchr oni ze d和Reentr antLoc的區(qū)別什么是樂(lè)觀鎖和悲觀鎖線程B怎么知道線程A修改了變里syn.chr oni zed鹰霍、volatile闻鉴、CAS比較sleep方法和wai t方法有什么區(qū)別?ThreadLoca1是什么?有什么用?為什么wai t 0方法和noti fy 0/noti fyAll(法要在同步塊中被調(diào)用多線程同步有哪幾種方法?線程的調(diào)度策略Concurr entHashMap的并發(fā)度是什么Linux環(huán)境下如何查找哪個(gè)線程使用CPU最Java死鎖以及如何避免?死鎖的原因怎么喚醒一個(gè)阻塞的線程不可變對(duì)象對(duì)多線程有什么幫助什么是多線程的上下文切換如果你提交任務(wù)時(shí), 線程池隊(duì)列已滿茂洒,這會(huì)發(fā)生什么Java中用到的線程調(diào)度算法是什么什么是線程調(diào)度器(Thread Sche duler)和間分片(Time Slicing)?什么是自旋鎖Java Concurr ency API中的Lock接口(Locker face)是什么單例模式的線程安全性Semaphore有什么作用Executors類是什么?線程類的構(gòu)造方法孟岛、靜態(tài)塊是被哪個(gè)線程用的同步方法和同步塊,哪個(gè)是更好的選擇?Java線程數(shù)過(guò)多會(huì)造成什么異常?Spring面試篇
什么是spring?使用Spring框架的好處是什么?Spri ne由哪些模塊組成?核心容器(應(yīng)用上下文)模塊督勺。BeanFactory一BeanFactory 實(shí)現(xiàn)舉例蚀苛。XMLBeanF actory解釋AOP模塊解釋JBC抽象和DAD模塊。解釋對(duì)象/關(guān)系映射集成模塊玷氏。解釋W(xué)EB模塊堵未。Sprinr配置文件什么是Spring IOC容器?IOC的優(yōu)點(diǎn)是什么?Appli cati onContext通常的實(shí)現(xiàn)是什么?Bean工廠和Application contexts 有什么區(qū)別?一個(gè)Spr ine的應(yīng)用看起來(lái)像什么?依賴注入什么是Sprine的依賴注入?有哪些不同類型的I0C (依賴注入)的方式?哪種依賴注入方式你建議使用,構(gòu)造器注入盏触,還是Setter方法注入?什么是Spring beans?一個(gè)Spring Bean定義包含什么?如何給Spring容器提供配2置元數(shù)據(jù)?你怎樣定義類的作用域?解釋Spr ing支持的幾種bean的作用域渗蟹。Spring框架中的單例bean是線程安全的嗎?解釋Spr ing框架中bean的生命周期。哪些是重要的bean生命周期方法?你能重載它們嗎?什么是Spri ne的內(nèi)部bean?在Spring中如何注入一個(gè)java集合?什么是bean裝配?什么是bean的自動(dòng)裝配?解釋不同方式的自動(dòng)裝配赞辩。自動(dòng)裝配有哪些局限性?你可以在Spring中注入一個(gè)nu11和一個(gè)空字符串嗎?什么是基于Jav的Sprine主解配置?給一些注解的例子雌芽。什么是基于注解的容器配置?怎樣開(kāi)啟注解裝配?@Required注解@Autowired注解@Qualifier注解在Spr ing框架中如何更有效地使用JDBC?JdbeTemplateSpring對(duì)DA0的支持使用Spr ing通過(guò)什么方式訪問(wèn)Hi bernate?Spring支持的0RM如何通過(guò)Hi bernateDaoSuppor t將Spr ing和Hibernate結(jié)合起來(lái)?Spring支持的事務(wù)管理類型Spring框架的事務(wù)管理有哪些優(yōu)點(diǎn)?你更傾向用哪種事務(wù)管理類型?解釋AOPAspect切面在Spring AOP中,關(guān)注點(diǎn)和橫切關(guān)注的區(qū)別是什么?連接點(diǎn)通知切點(diǎn)什么是引入?什么是目標(biāo)對(duì)象?什么是代理?有幾種不同類型的自動(dòng)代理?什么是織入辨嗽。什么是織入應(yīng)用的不同點(diǎn)?解釋基于XML Schem方式的切面實(shí)現(xiàn)世落。解釋基于注解的切面實(shí)現(xiàn)什么是Spr ine的MYC框架?DispatcherSerletWebApplicati onContext什么是Spring MVC框架的控制器?kafka面試篇
如何獲取topi c主題的列表生產(chǎn)者和消費(fèi)者的命令行 是什么?consumer是推還是拉?講講kafk維護(hù)消費(fèi)狀態(tài)跟蹤的方法講一下主從同步**為什么需要消息系統(tǒng),mysq1不能滿足需求嗎?Zookeeper對(duì)于Kafka的作用是什么?數(shù)據(jù)傳輸?shù)氖聞?wù)定義有哪三種?Kafka判斷一個(gè)節(jié)點(diǎn)是否還活著有那兩個(gè)條件?Kafka與傳統(tǒng)服消息系統(tǒng)之間有三個(gè)關(guān)鍵區(qū)別講一講kafks的ac的三種機(jī)制消費(fèi)者故障糟需,出現(xiàn)活 鎖問(wèn)題如何解決?如何控制消 費(fèi)的位置kafka分布式(不是單機(jī))的情況下屉佳,如何保證消息的順序消費(fèi)?kafks的高可用機(jī)制是什么?kafka如何減少數(shù)據(jù)丟失kafka如何不消費(fèi)重復(fù)數(shù)據(jù)?比如扣款,我們不能重復(fù)的扣洲押。微服務(wù)面試篇
您對(duì)微服務(wù)有何了解?微服務(wù)架構(gòu)有哪些優(yōu)勢(shì)?微服務(wù)有哪些特點(diǎn)?設(shè)計(jì)微服務(wù)的最佳實(shí)踐是什么?微服務(wù)架構(gòu)如何運(yùn)作?微服務(wù)架構(gòu)的優(yōu)缺點(diǎn)是什么?單片武花,SOA和微服務(wù)架構(gòu)有什么區(qū)別?在使用微服務(wù)架構(gòu)時(shí),您面臨哪些挑戰(zhàn)?S0A和微服務(wù)架構(gòu)之間的主要區(qū)別是什么?微服務(wù)有什么特點(diǎn)?什么是領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)?為什么需要域驅(qū)動(dòng)設(shè)計(jì)(DDD) ?什么是無(wú)所不在的語(yǔ)言?什么是凝聚力?什么是耦合?什么是REST 1 RESTfu以及它的用途是什么?你對(duì)Spring Boot有什么了解?什么是Spring引導(dǎo)的執(zhí)行器?什么是Spring Cloud?Spring Cloud解決了哪些問(wèn)題?在Spring MVC應(yīng)用程序中使用W ebMvcTest注釋有什么用處?你能否給出關(guān)于休息和微服務(wù)的要點(diǎn)?什么是不同類型的微服務(wù)測(cè)試?您對(duì)Distributed Tr ansacti on有何了解?什么是I dempotence以及它在哪里使用?什么是有界上下文?什么是雙因素身份驗(yàn)證?雙因素身份驗(yàn)證的憑據(jù)類型有哪些?什么是客戶證書?FACT在微服務(wù)架構(gòu)中的用途是什么?什么是0Auth?康威定律是什么?合同測(cè)試你懂什么?什么是端到端微服務(wù)測(cè)試?Container在微服務(wù)中的用途是什么?什么是微服務(wù)架構(gòu)中的DRY?什么是消費(fèi)者驅(qū)動(dòng)的合同(CDC) ?Web, REST ful API在微服務(wù)中的作用是什么?您對(duì)微服務(wù)架構(gòu)中的語(yǔ)義監(jiān)控有何了解?我們?nèi)绾芜M(jìn)行跨功能測(cè)試?我們?nèi)绾卧跍y(cè)試中消除非決定論?Mock或Stub有什么區(qū)別?您MikeCohn的測(cè)試金字塔了解多少?Docker的目的是什么?什么是金絲雀釋放?什么是持續(xù)集成(CI) ?什么是持續(xù)監(jiān)測(cè)?架構(gòu)師在微服務(wù)架構(gòu)中的角色是什么?我們可以用微服務(wù)創(chuàng)建狀態(tài)機(jī)嗎?什么是微服務(wù)中的反應(yīng)性擴(kuò)展?除此之外還有Elasticsearch(24道)Memcached(23道)Java常問(wèn)知識(shí)點(diǎn)(200道+)SpringBoot(22道)SpringCloud(8道)Linux(45道)MQ(12道)
由于文案過(guò)長(zhǎng)杈帐,這里就不把全部面試專題(答案)一一展示出來(lái)了下面是所有Java面試的目錄題体箕,對(duì)于這本1000道的Java面試寶典感興趣的朋友們只需點(diǎn)贊后添加VX:czh9115 即可來(lái)免費(fèi)領(lǐng)取了专钉!