第一面純問項(xiàng)目,就不分享出來了。1. GPT功能怎么實(shí)現(xiàn)的?2. 調(diào)用GPT回答要60秒,但是連接超時(shí)時(shí)間只有30秒怎么辦?(websocket)3. Integer a = 127, b = 127; a==b結(jié)果是什么?講下原理。4. ==和equals的區(qū)別。5. ArrayList和HashMap的底層原理。6. HashMap線程安全嗎?如果不,怎么辦?7. jdk1.7的HashMap有個(gè)bug,你了解嗎?8. 介紹一下線程池。9. 進(jìn)程和線程的區(qū)別?10. 多線程在Java中的實(shí)現(xiàn)有幾種?(我回答了Thread,Runnable,Callable,面試官說還有兩種)11. 線程有幾種狀態(tài)?(記不清了)12. 希爾排序、插入排序了解嗎?13. 冒泡排序了解嗎?時(shí)間復(fù)雜度?桶排序的過程?14. 設(shè)計(jì)模式了解嗎?Spring支持多例嗎?15. Spring的生命周期?(居然忘了)16. 對(duì)于接口安全應(yīng)該考慮哪些方面?(我回答了事務(wù)、事務(wù)傳播、https、tls加密,都沒回答到點(diǎn)子上,最后面試官說他的意思是假如一個(gè)接口一秒鐘只能承載500個(gè)請(qǐng)求,有人構(gòu)造了一萬個(gè)請(qǐng)求來攻擊怎么辦?我說請(qǐng)求限流,用Redis?Lua腳本做,面試官說盡量不要把限流放在應(yīng)用層。沒有搞懂,感覺這個(gè)問題問的很迷糊)17. MQ在項(xiàng)目中怎么用的?如何保證了消息不丟失?如何保證了消息的順序性?(都沒考慮,需要加強(qiáng))18. Redis和DB的緩存一致性應(yīng)該怎么保證?。雙刪策略為什么不行?19. 索引是如何運(yùn)行的?20. 二叉排序樹的中序遍歷怎么寫?21. 數(shù)組到二叉樹如何轉(zhuǎn)換?22. Redis中的內(nèi)存淘汰機(jī)制?23. 項(xiàng)目有一個(gè)地方查數(shù)據(jù)庫(kù)特別慢,阻塞了怎么辦?24. 怎么去發(fā)現(xiàn)哪里慢?(慢查詢?nèi)罩荆?5. 如果MySQL查到一個(gè)特別大的List,內(nèi)存爆了怎么辦?(把所有的id查出來,然后根據(jù)id一條一條查詢并返回,還可以暴力加內(nèi)存)好消息是面試通過了,壞消息是還有第三面......小插曲:面試官自己ArrayList記不清了,他說我少說了一個(gè)loadFactor。我在反問環(huán)節(jié)給他提出來了,給他講清楚了,他說他自己再下去好好看看??偟膩碚f面試官的水平還是很高的,可能只是這些八股他自己也忘記了吧,但是仍然不影響我個(gè)人對(duì)面試官很高的評(píng)價(jià)。