2025.4.2 下午三點開始面試,時長大約55分鐘。2025.4.3 下午四點多一面掛的郵件就已經(jīng)發(fā)來。本人是個菜雞,正在為找暑期實習(xí)而努力。記錄一下自己的第二場面試,也是第一個大廠面試。前面直接給我問懵了,中間有一會感覺大腦缺氧,暈暈的。面試官總體來說還行,但是我回答完問題就只是嗯,也不多說。1.自我介紹#牛客AI配圖神器#2.首先問了項目是練習(xí)項目嗎?回答:是學(xué)習(xí)練手項目;又問:從頭開始做的嗎?回答:從頭開始做的。3.項目為什么選擇微服務(wù),是怎么拆分的回答:(這塊沒準(zhǔn)備)只說了微服務(wù)后期好擴展,且不同微服務(wù)之間解耦。(這時候腦子已經(jīng)亂了)具體如何拆分微服務(wù)的,我回答的是微服務(wù)分為對外接口層api、應(yīng)用層、領(lǐng)域業(yè)務(wù)層、基礎(chǔ)設(shè)施層、調(diào)用別的微服務(wù)接口的rpc層。這真是給后面埋了大雷。4.項目開發(fā)過程中的難點和亮點巴拉巴拉亂說一通,但是沒忘記說項目的亮點,說了好幾個項目的亮點,可能面試官不興趣,后面就問了我說的在項目中用到了一些設(shè)計模式的亮點....5.如何和其他服務(wù)交互回答了api層封裝接口、rpc層調(diào)用其他服務(wù)6.RPC基于什么實現(xiàn)回答:rpc是微服務(wù)中的其中一層,如果要調(diào)用其他服務(wù)的,經(jīng)過 nacos 注冊中心借助 Feign 可以實現(xiàn)調(diào)用別的微服務(wù)中的接口。。7.追問了 Feign 如何實現(xiàn)的回答:把項目中一個微服務(wù)調(diào)用另一個微服務(wù)的實現(xiàn)說了下追問:底層如何實現(xiàn)的回答:網(wǎng)絡(luò)協(xié)議和數(shù)據(jù)序列化(沒看過這個,隨便說了倆)8.feign的協(xié)議和序列化是用的什么?直接抱歉,不會9.項目部署了嗎?回答:在自己實驗室電腦上的linux環(huán)境接著jenkins自動部署,只能內(nèi)網(wǎng)訪問。把jenkins部署流程簡單說了一下10.你提到項目中用到了設(shè)計模式,具體如何實現(xiàn)的?把項目中用到的的工廠-策略模式、適配器模式都說了項目階段回答的太爛了,就開始問八股了。11.java的哈希結(jié)構(gòu)有哪些?回答:hashmap、concurrentHashMap、linkedhashmap、hashtable(直說了這些,其他的回答不上來了)12.hashmap的底層,紅黑樹查詢和插入效率回答:基于數(shù)組、鏈表/紅黑樹實現(xiàn),還說了鏈表轉(zhuǎn)紅黑樹的時機;面試完回想當(dāng)時好像說的是O(n),腦子想的是O(logn),說成了O(n)13.hashmap和hashtable的區(qū)別回答:hashmap不是線程安全的、hashtable是線程安全的14.hashtable線程安全怎么實現(xiàn)回答:使用synchronized實現(xiàn)15.ConcurrentHashMap實現(xiàn)線程安全?回答:回答了 jdk1.7和1.8分別怎么實現(xiàn)的16.樂觀鎖與悲觀鎖,分別的應(yīng)用場景回答:樂觀鎖和悲觀鎖回答出來了,但是應(yīng)用場景說反了17.synchronized和lock區(qū)別回答:說了synchronized基于jvm的監(jiān)視器鎖機制,巴拉巴拉;而reentrantlock使用lock顯示的獲取鎖。18.lock和unlock底層怎么實現(xiàn)回答:只記得判斷state的狀態(tài)來獲取和釋放鎖,具體如何不知道19.JVM的GC算法回答:最開始回答了垃圾回收器,過一會才反應(yīng)過來,20.什么情況下觸發(fā)GC回答:說主要是因為內(nèi)存不足,然后System.gc()方法,其他的不記得了21.講講spring的IOC回答:控制反轉(zhuǎn),把bean交給spring管理,解耦,方便維護和測試。依賴DI實現(xiàn)22.依賴注入怎么實現(xiàn)回答:靜態(tài)、實力工廠、構(gòu)造器、setter方法。(注解注入忘記了,沒有說)23.Spring事務(wù)注解@Transaction的底層實現(xiàn)回答:只說了使用AOP和事務(wù)攔截器,替代傳統(tǒng)的編程式事務(wù)(其他的不知道了,直接抱歉)24.mysql的默認(rèn)隔離級別回答:read-committed,讀已提交25.read-committed是什么意思回答:回答成了一個線程只能讀取其他線程已提交的數(shù)據(jù)(哎,事務(wù)說成線程了)26.其他的隔離級別以及解決了什么問題回答:回答了其他的幾個隔離級別對應(yīng)解決的問題27.如何實現(xiàn)可重復(fù)讀回答:這個忘記了,隨便說了一個MVCC28.MVCC如何實現(xiàn)回答:版本號,讀取數(shù)據(jù)快照29.算法(沒成功運行):單鏈表奇數(shù)節(jié)點遞增偶數(shù)節(jié)點遞減,重排后使之升序,回答一下思路。在紙上畫了一下,過一會有了思路:把原鏈表拆分成兩條鏈表,奇數(shù)節(jié)點鏈表和偶數(shù)節(jié)點鏈表,然后反轉(zhuǎn)偶數(shù)節(jié)點鏈表,這時候就是合并兩條有序鏈表。面試官讓我實現(xiàn)一下代碼寫完之后,在合并代碼那報空指針異常,檢查了一下這個合并方法,問題不出在這,估計是前面的拆分鏈表的時候?qū)戝e了。但是沒檢查出來哪里寫錯了。面試官說時間快到了,讓我下去再看看。反問:通過這場面試,您覺得我應(yīng)該往哪方面改進?面試官反問,你覺得你前面的問題哪些沒答好我說了一些前面沒回答好的問題面試官說要了解框架、和一些技術(shù)的底層原理,不能只會用#面經(jīng)java#