社招一年半面經(jīng)分享(含阿里美團(tuán)頭條京東滴滴)
最近一段時(shí)間面試了幾家互聯(lián)網(wǎng)公司,陸續(xù)通過了阿里、頭條、美團(tuán),滴滴,京東的面試,基本上面試的公司都通過了,所以在這里想分享一些自己面試的經(jīng)驗(yàn)給大家,希望能幫助大家拿到心儀的offer
我的基本情況:19屆本科,現(xiàn)在在一家小公司,畢業(yè)一年半,后端開發(fā)
面試準(zhǔn)備
簡歷
重點(diǎn)放在專業(yè)技能和項(xiàng)目經(jīng)驗(yàn)兩塊
1.你的簡歷就是你給面試官提供的考點(diǎn),簡歷上的東西必須自己Hold住,萬一自己寫的東西被問住了,會(huì)很尷尬,給面試官留下的印象也不好,所以就是會(huì)啥寫啥
2.技術(shù)棧最好不要寫精通,你敢寫面試官就敢問,被問倒了很尷尬的,寫熟悉,了解就行
怎么投簡歷
我這里強(qiáng)烈建議找人內(nèi)推,這樣簡歷通過的概率大些,如果找不到,可以試試脈脈,我就是從脈脈投的簡歷,把狀態(tài)改成尋找機(jī)會(huì)就行,會(huì)有很多人找你的
推薦一個(gè)簡歷制作模版,我一直用的,https://www.polebrief.com/index
算法
這個(gè)該刷還是得刷,別偷懶,我個(gè)人感覺刷完下面幾個(gè)已經(jīng)夠了,大家可以根據(jù)自己的基礎(chǔ)情況選擇
1.劍指Offer:https://www.nowcoder.com/ta/coding-interviews
2.刷Leetcode,刷Leetcode,刷Leetcode!重要的事情說三遍,Leetcode前200道
3.經(jīng)典排序算法:https://blog.csdn.net/qq_35508033/article/details/109399281
復(fù)習(xí)
我復(fù)習(xí)主要以看書為主,推薦一些我看的書籍和資料,有時(shí)間的話盡量看的細(xì)一點(diǎn),多看幾遍,沒時(shí)間的話就挑重點(diǎn)看
并發(fā)編程:Java并發(fā)編程的藝術(shù),Java發(fā)編程實(shí)戰(zhàn)
JVM:深入理解Java虛擬機(jī)
Redis:Redis設(shè)計(jì)與實(shí)現(xiàn),Redis開發(fā)與運(yùn)維
MySQL:高性能MySQL,MySQL技術(shù)內(nèi)幕
SpringBoot和SpringCloud:https://blog.didispace.com/
Kafka:Apache Kafka實(shí)戰(zhàn)
設(shè)計(jì)模式:大話設(shè)計(jì)模式,設(shè)計(jì)模式之禪
分布式:從Paxos到Zookeeper分布式一致性原理與實(shí)踐
需要書籍的pdf文檔可以關(guān)注我的公眾號(hào),月伴飛魚,回復(fù)666獲取
項(xiàng)目經(jīng)驗(yàn)
社招面試項(xiàng)目很重要,不光是你項(xiàng)目本身的技術(shù)復(fù)雜度,還有業(yè)務(wù)復(fù)雜度,你本身在項(xiàng)目中擔(dān)任的什么角色,遇到過什么問題,瓶頸在哪,怎么解決的,這幾個(gè)問題是非常重要的,很多公司到最后基本上都是圍繞著你的項(xiàng)目在問,給面試官講明白你的項(xiàng)目是必須具備的能力
總結(jié)下社招面試問項(xiàng)目最主要的問題套路:
1.你項(xiàng)目為什么這么設(shè)計(jì),你這樣設(shè)計(jì)有什么好處,解決了什么問題,會(huì)產(chǎn)生什么問題,還有什么可以優(yōu)化的
2.這么設(shè)計(jì)有什么瓶頸嗎,遇到了什么問題,有什么改善的方案
3.項(xiàng)目遇到的難點(diǎn),技術(shù)挑戰(zhàn),你是怎么解決的,為什么用這種方式解決,還有更好的方式么
4.根據(jù)你簡歷上提到的具體功能去扣細(xì)節(jié)
面試技巧
1.面試得自信且謙虛,聲音自信,面試表現(xiàn)謙虛,得給面試官一種你啥都會(huì),很穩(wěn)的感覺(實(shí)際內(nèi)心很慌),然后語言表達(dá)流暢,吐字清晰,回答問題也要有邏輯性,不能支支吾吾半天說不明白,面試官都聽不懂,這就很尷尬了,這個(gè)可以自己多練習(xí)一下
2.面試本質(zhì)是一個(gè)自我優(yōu)勢(shì)展示的過程,不要讓面試官問一句自己回答一句,主動(dòng)拋出一些可能的點(diǎn)讓面試官來主動(dòng)問你,還有就是不會(huì)的問題就說不會(huì),這個(gè)沒關(guān)系的,千萬別瞎說
3.不要眼高手低,不少小伙伴看面經(jīng)覺得自己啥都會(huì),但是會(huì)與面試過程中能清晰有層次的說出來是兩回事,費(fèi)曼學(xué)習(xí)法可以了解一下,舉個(gè)例子:比如sychronized的原理,能不能說出點(diǎn)面試官眼前一亮的東西,這還是不容易的,其實(shí)面試主要是證明你比別人更有技術(shù)的深度,廣度,不然都是背八股文,那面試官看不出你有什么不一樣的,這個(gè)面試過的概率就大大降低了
個(gè)人建議,面試沒準(zhǔn)備好,不要隨便面試,一些大廠都會(huì)有面試評(píng)價(jià)記錄,太多差評(píng)影響以后的面試,同時(shí)面完之后要多總結(jié),復(fù)盤,整理知識(shí)點(diǎn),查漏補(bǔ)缺
面試最后
面試結(jié)束時(shí)問面試官什么問題
我一般會(huì)問:
我面試的崗位的具體工作是什么
使用的技術(shù)棧有哪些
面試總結(jié)
阿里的面試更傾向于實(shí)用性,基本是從各種場(chǎng)景出發(fā),來給你一個(gè)場(chǎng)景,讓你來解決實(shí)際的問題,那么在解決問題的過程中,對(duì)于各種知識(shí)的應(yīng)用就是亮點(diǎn)了
頭條更看重計(jì)算機(jī)基礎(chǔ),算法,以及對(duì)各種中間件的了解
面試也有不少的運(yùn)氣成分的,畢竟每個(gè)面試官的側(cè)重點(diǎn)可能不一樣,大家放平心態(tài)就好
學(xué)習(xí)建議
學(xué)習(xí)要形成自己的知識(shí)體系,不要天天盯著別人的面經(jīng)(當(dāng)然,我的面經(jīng)可以看,哈哈)做碎片化學(xué)習(xí),面經(jīng)只是輔助作用,查漏補(bǔ)缺的,一旦你的知識(shí)體系有了,很多問題都能舉一反三,這時(shí)候面試就很穩(wěn)了
下面是熱乎乎的面經(jīng)
注意:有些面試的題目比較少,因?yàn)橛行┟嬖囶}因?yàn)闀?huì)被多個(gè)公司重復(fù)問 ,就不重復(fù)寫了
美團(tuán)
一面
1.線程安全的類有哪些,平時(shí)有使用么,用來解決什么問題
2.mysql日志文件有哪些,分別介紹下作用
3.你們項(xiàng)目為什么用redis,快在哪,怎么保證高性能,高并發(fā)的
4.redis字典結(jié)構(gòu),hash沖突怎么辦,rehash,負(fù)載因子
5.jvm了解哪些參數(shù),用過哪些指令
6.zookeeper的基本原理,數(shù)據(jù)模型,znode類型,應(yīng)用場(chǎng)景有哪些
7.一個(gè)熱榜功能怎么設(shè)計(jì),怎么設(shè)計(jì)緩存,如何保證緩存和數(shù)據(jù)庫的一致性
8.容器化技術(shù)了解么,主要解決什么問題,原理是什么
算法:對(duì)于一個(gè)字符串,計(jì)算其中最長回文子串的長度
項(xiàng)目介紹
美團(tuán)
因?yàn)橹暗牟块T一面通過后,該部門沒有hc了,就給我推薦到其他部門了,大廠hc還是挺緊張的
一面
1.redis集群,為什么是16384,哨兵模式,選舉過程,會(huì)有腦裂問題么,raft算法,優(yōu)缺點(diǎn)
2.jvm類加載器,自定義類加載器,雙親委派機(jī)制,優(yōu)缺點(diǎn),tomcat類加載機(jī)制
3.tomcat熱部署,熱加載了解么,怎么做到的
4.cms收集器過程,g1收集器原理,怎么實(shí)現(xiàn)可預(yù)測(cè)停頓的,region的大小,結(jié)構(gòu)
5.內(nèi)存溢出,內(nèi)存泄漏遇到過么,什么場(chǎng)景產(chǎn)生的,怎么解決的
6.鎖升級(jí)過程,輕量鎖可以變成偏向鎖么,偏向鎖可以變成無鎖么,自旋鎖,對(duì)象頭結(jié)構(gòu),鎖狀態(tài)變化過程
7.kafka重平衡,重啟服務(wù)怎么保證kafka不發(fā)生重平衡,有什么方案
8.怎么理解分布式和微服務(wù),為什么要拆分服務(wù),會(huì)產(chǎn)生什么問題,怎么解決這些問題
9.你們用的什么消息中間件,kafka,為什么用kafka,高吞吐量,怎么保證高吞吐量的,設(shè)計(jì)模型,零拷貝
算法1:給定一個(gè)長度為N的整形數(shù)組arr,其中有N個(gè)互不相等的自然數(shù)1-N,請(qǐng)實(shí)現(xiàn)arr的排序,但是不要把下標(biāo)0~N?1位置上的數(shù)通過直接賦值的方式替換成1~N
算法2:判斷一個(gè)樹是否是平衡二叉樹
二面
1.Innodb的結(jié)構(gòu)了解么,磁盤頁和緩存區(qū)是怎么配合,以及查找的,緩沖區(qū)和磁盤數(shù)據(jù)不一致怎么辦,mysql突然宕機(jī)了會(huì)出現(xiàn)數(shù)據(jù)丟失么
2.redis字符串實(shí)現(xiàn),sds和c區(qū)別,空間預(yù)分配
3.redis有序集合怎么實(shí)現(xiàn)的,跳表是什么,往跳表添加一個(gè)元素的過程,添加和獲取元素,獲取分?jǐn)?shù)的時(shí)間復(fù)雜度,為什么不用紅黑樹,紅黑樹有什么特點(diǎn),左旋右旋操作
4.io模型了解么,多路復(fù)用,selete,poll,epoll,epoll的結(jié)構(gòu),怎么注冊(cè)事件,et和lt模式
5.怎么理解高可用,如何保證高可用,有什么弊端,熔斷機(jī)制,怎么實(shí)現(xiàn)
6.對(duì)于高并發(fā)怎么看,怎么算高并發(fā),你們項(xiàng)目有么,如果有會(huì)產(chǎn)生什么問題,怎么解決
7.項(xiàng)目介紹
算法:給定一個(gè)二叉樹,請(qǐng)計(jì)算節(jié)點(diǎn)值之和最大的路徑的節(jié)點(diǎn)值之和是多少,這個(gè)路徑的開始節(jié)點(diǎn)和結(jié)束節(jié)點(diǎn)可以是二叉樹中的任意節(jié)點(diǎn)
三面
項(xiàng)目介紹
算法:求一個(gè)float數(shù)的立方根,牛頓迭代法
什么時(shí)候能入職,你對(duì)崗位的期望是什么
你還在面其他公司么,目前是一個(gè)什么流程
阿里
一面
1.synchronized原理,怎么保證可重入性,可見性,拋異常怎么辦,和lock鎖的區(qū)別,2個(gè)線程同時(shí)訪問synchronized的靜態(tài)方法,2個(gè)線程同時(shí)訪問一個(gè)synchronized靜態(tài)方法和非靜態(tài)方法,分別怎么進(jìn)行
2.volatile作用,原理,怎么保證可見性的,內(nèi)存屏障
3.你了解那些鎖,樂觀鎖和悲觀鎖,為什么讀要加鎖,樂觀鎖為什么適合讀場(chǎng)景,寫場(chǎng)景不行么,會(huì)有什么問題,cas原理
4.什么情況下產(chǎn)生死鎖,怎么排查,怎么解決
5.一致性hash原理,解決什么問題,數(shù)據(jù)傾斜,為什么是2的32次方,20次方可以么
6.redis緩存穿透,布隆過濾器,怎么使用,有什么問題,怎么解決這個(gè)問題
7.redis分布式鎖,過期時(shí)間怎么定的,如果一個(gè)業(yè)務(wù)執(zhí)行時(shí)間比較長,鎖過期了怎么辦,怎么保證釋放鎖的一個(gè)原子性,你們r(jià)edis是集群的么,講講redlock算法
8.mysql事務(wù),acid,實(shí)現(xiàn)原理,臟讀,臟寫,隔離級(jí)別,實(shí)現(xiàn)原理,mvcc,幻讀,間隙鎖原理,什么情況下會(huì)使用間隙鎖,鎖失效怎么辦,其他鎖了解么,行鎖,表鎖
9.mysql索引左前綴原理,怎么優(yōu)化,哪些字段適合建索引,索引有什么優(yōu)缺點(diǎn)
10.線上遇到過慢查詢么,怎么定位,優(yōu)化的,explain,using filesort表示什么意思,產(chǎn)生原因,怎么解決
11.怎么理解冪等性,有遇到過實(shí)際場(chǎng)景么,怎么解決的,為什么用redis,redis過期了或者數(shù)據(jù)沒了怎么辦
二面
1.hashmap原理,put和get,為什么是8轉(zhuǎn)紅黑樹,紅黑樹節(jié)點(diǎn)添加過程,什么時(shí)候擴(kuò)容,為什么是0.75,擴(kuò)容步驟,為什么分高低位,1.7到1.8有什么優(yōu)化,hash算法做了哪些優(yōu)化,頭插法有什么問題,為什么線程不安全
2.arraylist原理,為什么數(shù)組加transient,add和get時(shí)間復(fù)雜度,擴(kuò)容原理,和linkedlist區(qū)別,原理,分別在什么場(chǎng)景下使用,為什么
3.了解哪些并發(fā)工具類
4.reentrantlock的實(shí)現(xiàn)原理,加鎖和釋放鎖的一個(gè)過程,aqs,公平和非公平,可重入,可中斷怎么實(shí)現(xiàn)的
5.concurrenthashmap原理,put,get,size,擴(kuò)容,怎么保證線程安全的,1.7和1.8的區(qū)別,為什么用synchronized,分段鎖有什么問題,hash算法做了哪些優(yōu)化
6.threadlocal用過么,什么場(chǎng)景下使用的,原理,hash沖突怎么辦,擴(kuò)容實(shí)現(xiàn),會(huì)有線程安全問題么,內(nèi)存泄漏產(chǎn)生原因,怎么解決
7.垃圾收集算法,各有什么優(yōu)缺點(diǎn),gc roots有哪些,什么情況下會(huì)發(fā)生full gc
8.了解哪些設(shè)計(jì)模式,工廠,策略,裝飾者,橋接模式講講,單例模式會(huì)有什么問題
9.對(duì)spring aop的理解,解決什么問題,實(shí)現(xiàn)原理,jdk動(dòng)態(tài)代理,cglib區(qū)別,優(yōu)缺點(diǎn),怎么實(shí)現(xiàn)方法的調(diào)用的
10.mysql中有一個(gè)索引(a,b,c),有一條sql,where a = 1 and b > 1 and c =1;可以用到索引么,為什么沒用到,B+樹的結(jié)構(gòu),為什么不用紅黑樹,B樹,一千萬的數(shù)據(jù)大概多少次io
11.mysql聚簇索引,覆蓋索引,底層結(jié)構(gòu),主鍵索引,沒有主鍵怎么辦,會(huì)自己生成主鍵為什么還要自定義主鍵,自動(dòng)生成的主鍵有什么問題
12.redis線程模型,單線程有什么優(yōu)缺點(diǎn),為什么單線程能保證高性能,什么情況下會(huì)出現(xiàn)阻塞,怎么解決
13.kafka是怎么保證高可用性的,講講它的設(shè)計(jì)架構(gòu),為什么讀寫都在主分區(qū),這樣有什么優(yōu)缺點(diǎn)
了解DDD么,不是很了解
你平時(shí)是怎么學(xué)習(xí)的
項(xiàng)目介紹
三面
1.線程有哪些狀態(tài),等待狀態(tài)怎么產(chǎn)生,死鎖狀態(tài)的變化過程,中止?fàn)顟B(tài),interrupt()方法
2.你怎么理解線程安全,哪些場(chǎng)景會(huì)產(chǎn)生線程安全問題,有什么解決辦法
3.mysql多事務(wù)執(zhí)行會(huì)產(chǎn)生哪些問題,怎么解決這些問題
4.分庫分表做過么,怎么做到不停機(jī)擴(kuò)容,雙寫數(shù)據(jù)丟失怎么辦,跨庫事務(wù)怎么解決
5.你們用的redis集群么,擴(kuò)容的過程,各個(gè)節(jié)點(diǎn)間怎么通信的
6.對(duì)象一定分配在堆上么,JIT,分層編譯,逃逸分析
7.es的寫入,查詢過程,底層實(shí)現(xiàn),為什么這么設(shè)計(jì)
8.es集群,腦裂問題,怎么產(chǎn)生的,如何解決
9.while(true)里面一直new thread().start()會(huì)有什么問題
10.socket了解么,tcp和udp的實(shí)現(xiàn)區(qū)別,不了解,用的不多
11.設(shè)計(jì)一個(gè)秒殺系統(tǒng)能承受千萬級(jí)并發(fā),如果redis也扛不住了怎么辦
項(xiàng)目介紹
四面
1.講講你最熟悉的技術(shù),jvm,mysql,redis,具體哪方面
2.new Object[100]對(duì)象大小,它的一個(gè)對(duì)象引用大小,對(duì)象頭結(jié)構(gòu)
3.mysql主從復(fù)制,主從延時(shí)怎么解決
4.怎么保證redis和mysql的一致性,redis網(wǎng)絡(luò)原因執(zhí)行超時(shí)了會(huì)執(zhí)行成功么,那不成功怎么保證數(shù)據(jù)一致性
5.redis持久化過程,aof持久化會(huì)出現(xiàn)阻塞么,一般什么情況下使用rdb,aof
6.線上有遇到大流量的情況么,產(chǎn)生了什么問題,為什么數(shù)據(jù)庫2000qps就撐不住了,有想過原因么,你們當(dāng)時(shí)怎么處理的
7.限流怎么做,如果讓你設(shè)計(jì)一個(gè)限流系統(tǒng),怎么實(shí)現(xiàn)
8.dubbo和spring cloud區(qū)別,具體區(qū)別,分別什么場(chǎng)景使用
9.給了幾個(gè)場(chǎng)景解決分布式事務(wù)問題
項(xiàng)目介紹
你覺得你們的業(yè)務(wù)對(duì)公司有什么實(shí)際價(jià)值,體現(xiàn)在哪,有什么數(shù)據(jù)指標(biāo)么
五面
hr面完后又來了一面,說是交叉面
1.怎么理解用戶態(tài),內(nèi)核態(tài),為什么要分級(jí)別,有幾種轉(zhuǎn)換的方式,怎么轉(zhuǎn)換的,轉(zhuǎn)換失敗怎么辦
2.怎么理解異常,它的作用是什么,你們工作中是怎么使用的
3.你們用redis么,用來做什么,什么場(chǎng)景使用的,遇到過什么問題,怎么解決的
4.jvm元空間內(nèi)存結(jié)構(gòu),永久代有什么問題
5.你平時(shí)開發(fā)中怎么解決問題,假如現(xiàn)在線上有一個(gè)告警,你的解決思路,過程
6.你們?yōu)槭裁匆胢q,遇到過什么問題么,怎么就解決的
你覺得和友商相比,你們的優(yōu)勢(shì)在哪
聊天:炒股么,為什么買B站,天天用,看好他
菜鳥
不知道為啥可以同時(shí)兩個(gè)流程,可能真的缺人(想去阿里的大家抓緊機(jī)會(huì))
算是給我2次選擇機(jī)會(huì)了,面了幾面(2面只用了11分鐘,哈哈),主要問項(xiàng)目了
抖音
感覺頭條不怎么問項(xiàng)目,或許是我項(xiàng)目太low了,比較喜歡問計(jì)算機(jī)基礎(chǔ)和中間件知識(shí)
一面
1.http請(qǐng)求頭,expire,cache-control字段,狀態(tài)碼,301,302,401,403
2.https原理,數(shù)字簽名,數(shù)字證書,非對(duì)稱加密算法過程,有什么問題
3.tcp連接client和server有哪些狀態(tài),time_wait狀態(tài)
4.虛擬內(nèi)存,虛擬地址和物理地址怎么轉(zhuǎn)換,內(nèi)存分段,內(nèi)存分頁,優(yōu)缺點(diǎn)
5.linux最多可以建立多少個(gè)tcp連接,client端,server端,超過了怎么辦
6.eureka原理,強(qiáng)一致性么,為什么,怎么保證強(qiáng)一致性,多級(jí)緩存怎么保證一致性,eureka集群,宕機(jī)了服務(wù)還能調(diào)用么
7.hystrix原理,半開狀態(tài)知道么,具體的一個(gè)轉(zhuǎn)換過程,它的隔離是怎么實(shí)現(xiàn)的
8.zookeeper一致性保證,zab協(xié)議原理,半數(shù)原則如果查詢到另外一半呢,那zookeeper屬于哪種一致性,強(qiáng)一致性么,還是最終一致性
9.zookeeper選舉機(jī)制,選舉過程有什么問題
算法:最長不重復(fù)的連續(xù)子串
聊天:頭條為什么用go,對(duì)java和go怎么看,愿意轉(zhuǎn)go么
二面
1.函數(shù)a調(diào)用函數(shù)b的過程,是怎么傳參的
2.java里面的函數(shù)調(diào)用有哪些,io流里面有函數(shù)調(diào)用么
3.fork函數(shù),父子進(jìn)程的區(qū)別,孤兒進(jìn)程,僵尸進(jìn)程會(huì)有什么問題,進(jìn)程有哪些狀態(tài),進(jìn)程間怎么同步,通信,消息隊(duì)列,管道怎么實(shí)現(xiàn)的,進(jìn)程調(diào)度算法,各有什么優(yōu)缺點(diǎn)
4.dos攻擊,ddos攻擊,drdos攻擊,怎么解決,syn flood
5.自旋鎖,線程上下文切換的開銷具體是什么,中斷,有哪些中斷,用戶態(tài)和內(nèi)核態(tài)切換過程
6.一張大表怎么更改表的數(shù)據(jù)結(jié)構(gòu),字段,用alter會(huì)有什么問題,怎么解決呢,有什么好的方案,雙寫的話會(huì)有什么問題,還有其他方案么
7.redis管道用過么,用來做什么,它的原理是,保證原子性么,和事務(wù)的區(qū)別,redis事務(wù)保證原子性么
8.redis強(qiáng)一致性么,怎么保證強(qiáng)一致性,有什么方案
9.kafka怎么保證消息不丟失的
算法:找出所有相加之和為 n 的 k 個(gè)數(shù)的組合,組合中只允許含有 1 - 9 的正整數(shù),并且每種組合中不存在重復(fù)的數(shù)字,輸入: k = 3, x = 9 輸出: [[1,2,6], [1,3,5], [2,3,4]]
三面
感覺面試官很忙,就問了幾個(gè)電商場(chǎng)景的技術(shù)解決方案
算法:一個(gè)環(huán)上有10個(gè)點(diǎn),編號(hào)為0-9,從0點(diǎn)出發(fā),每步可以順時(shí)針到下一個(gè)點(diǎn),也可以逆時(shí)針到上一個(gè)點(diǎn),求:經(jīng)過n步又回到0點(diǎn)有多少種不同的走法
舉例:
如果n=1,則從0出發(fā)只能到1或者9,不可能回到0,共0種走法
如果n=2,則從0出發(fā)有4條路徑:0->1->2, 0->1->0, 0->9->8, 0->9->0,其中有兩條回到了0點(diǎn),故一共有2種走法
快手
感覺像刷kpi的,一看JD發(fā)現(xiàn)招的資深研發(fā)工程師,我對(duì)快手的印象又不好了
一面
手寫hashmap(卒)
滴滴
一面
1.排序算法了解哪些,快排,快排復(fù)雜度,優(yōu)化,堆排序,建堆過程
2.反射了解么,原理是什么
3.treemap和linkdedhashmap區(qū)別,實(shí)現(xiàn)原理
4.jvm類加載的過程講講,符號(hào)引用是什么,哪些情況會(huì)發(fā)生初始化
5.spring的循環(huán)依賴,怎么解決的,為什么需要加個(gè)三級(jí)緩存,二級(jí)不行么
6.springboot有什么特點(diǎn),相比與spring,了解springboot的自動(dòng)裝配的一個(gè)原理么
7.kafka支持事務(wù)么,你們項(xiàng)目中有使用么,它的原理是什么
8.怎么統(tǒng)計(jì)一億用戶的日活,hyperloglog有什么缺點(diǎn),bitmap不行么
算法:求一個(gè)環(huán)形鏈表的環(huán)的長度
二面
1.redis的幾種數(shù)據(jù)類型,你們用過哪些,zset有用來做什么
2.垃圾收集器,cms垃圾收集過程,為什么停頓時(shí)間短,有什么缺點(diǎn),concurrent mode failure怎么辦,內(nèi)存碎片怎么解決,為什么不用標(biāo)記整理法
3.線程池原理,核心參數(shù),線程數(shù)設(shè)置,參數(shù)動(dòng)態(tài)調(diào)整后變化過程,Tomcat線程池原理,常用的線程池,你們一般使用哪種,為什么,會(huì)有什么問題,線程拋異常怎么辦,阻塞隊(duì)列原理
4.做過分庫分表么,為什么要分庫分表,會(huì)有什么問題,多少數(shù)據(jù)適合分庫分表,跨庫,聚合操作怎么做
項(xiàng)目介紹
算法:給定一個(gè)二叉樹, 找到該樹中兩個(gè)指定節(jié)點(diǎn)的最近公共祖先
你對(duì)自己有什么規(guī)劃,想學(xué)習(xí)什么技術(shù),最近在看什么書
三面
1.nio講講,實(shí)現(xiàn)原理,優(yōu)缺點(diǎn)
2.了解netty么,講講netty的設(shè)計(jì)模型,架構(gòu),使用場(chǎng)景
3.zookeeper讀寫數(shù)據(jù)過程
項(xiàng)目介紹
京東
一面
1.tcp和udp的區(qū)別,tcp怎么保證可靠連接的,出現(xiàn)網(wǎng)絡(luò)擁塞怎么解決
2.tcp和udp的報(bào)文結(jié)構(gòu)了解么
3.給了一個(gè)業(yè)務(wù)場(chǎng)景寫sql語句
4.你們建表會(huì)定義自增id么,為什么,自增id用完了怎么辦
5.一般你們?cè)趺唇╩ysql索引,基于什么原則,遇到過索引失效的情況么,怎么優(yōu)化的
6.jvm內(nèi)存結(jié)構(gòu),堆結(jié)構(gòu),棧結(jié)構(gòu),a+b操作數(shù)棧過程,方法返回地址什么時(shí)候回收,程序計(jì)數(shù)器什么時(shí)候?yàn)榭?/span>
7.redis實(shí)現(xiàn)分布式鎖,還有其他方式么,zookeeper怎么實(shí)現(xiàn),各有什么有缺點(diǎn),你們?yōu)槭裁从胷edis實(shí)現(xiàn)
算法:返回一個(gè)樹的左視圖
二面
1.spring你比較了解哪方面,講講,生命周期,bean創(chuàng)建過程
2.使用過事務(wù)么,遇到過事務(wù)失效的情況么,原因是什么
3.springboot是怎么加載類的,通過什么方式
4.什么對(duì)象會(huì)進(jìn)入老年代,eden和survivor比例可以調(diào)整么,參數(shù)是什么,調(diào)整后會(huì)有什么問題
5.微信朋友圈設(shè)計(jì),點(diǎn)贊,評(píng)論功能實(shí)現(xiàn),拉黑呢,redis數(shù)據(jù)沒了怎么辦
項(xiàng)目介紹
算法:給你兩個(gè)非空的鏈表,表示兩個(gè)非負(fù)的整數(shù)。它們每位數(shù)字都是按照逆序的方式存儲(chǔ)的,并且每個(gè)節(jié)點(diǎn)只能存儲(chǔ)一位數(shù)字。
請(qǐng)你將兩個(gè)數(shù)相加,并以相同形式返回一個(gè)表示和的鏈表
三面
感覺面試官對(duì)es很熟悉,一直問es問題
1.es倒排索引,原理,lucene,分詞,分片,副本
2.es寫數(shù)據(jù)原理,數(shù)據(jù)實(shí)時(shí)么,為什么不實(shí)時(shí),會(huì)丟數(shù)據(jù)么,segment,cache,buffer,translog關(guān)系
3.es深度分頁,優(yōu)化
項(xiàng)目介紹
算法:驗(yàn)證二叉搜索樹
有道無術(shù),術(shù)可成;有術(shù)無道,止于術(shù)
歡迎大家關(guān)注Java之道公眾號(hào)
好文章,我在看??
