Java集合比如說HashMap和ConcurrentHashMap我覺得,你最好在平時能去耐心讀一下原始碼,搜一搜相關的博客,
最好能知道每個引數為什么設定成這么大?有什么好處?為什么?你會發現不少東西,網上也有很多視頻可以去學,
JUC包,毫無疑問的,你得去學,哪怕你平時編程根本不去用,但是你得會,只得知道有這個東西,
你至少得知道aba,cas,aqs,unsafe,volatile,sync,常見的各種lock,死鎖,執行緒池引數和如何合理的去設定,
你必須明白自旋,阻塞,死鎖和它如何去定位,oom如何定位問題,cpu過高如何定位等基本的操作,
你可以沒有生產除錯經驗,但不代表你可以不會top,jps,jstack,jmap這些可能會問的東西,以及可能衍生的jmm模型和mesi協議等,
JVM毫無意外,大廠必須問,垃圾回收演算法,垃圾收集器,jvm記憶體模型,每個區域用途,各種oom的種類,
jvm調優經驗,沒有你也要做過,自己去設定啟動引數,知道常見引數的含義,類加載程序,雙親委派,
什么時候young gc,full gc,各種情況進入老年代的方式,你知道的越多越好,因為吹起來就越自信,舉個例子,逃逸分析是什么?markword里面有什么?
Spring,最好能抽空看看原始碼,最起碼bean的生命周期,如何解決回圈依賴,父子容器,還有boot的啟動流程,事務實作原理,動態代理原理等,你知道越多越好,
Dubbo,因為我用的是dubbo,而且我寫了,這個也是高頻,寫了必須問的,他的設計框架,負載均衡,spi機制,
一般順勢會提到zk,選舉演算法,分布式鎖等,一些常見的dubbo問題可以去搜,網上的基本都有,
可能會順帶去問cloud的問題,生產沒用過不怕,你現在可以自己clone一個專案,最起碼,互聯娃,
你得知道還有這個玩意兒,還有他集成了啥,比如erureka,hystrix,ribbon,feign,zuul這些常規的東西吧,他們做什么的?
Redis,必須會的,我這方便還算懂得多點,可以和面試官大戰幾個回合吧,應該不至于上來被打趴下,
單執行緒模型,aof,rdb,rewrite,主從,cluster,哪些型別,不要再說常規的5個了,多說幾個讓你區別其他小哥,
包含一些快取常見的問題擊穿、穿透、雪崩、資料一致性等,你必須會,不會基本沒戲,一致性hash,
布隆過濾器的原理,為此我還去了解了geohash的原理以及google s2的原理,底層資料結構sds和跳表等,你多學點,準沒錯,
Mysql,事務,鎖,索引,b+樹,主從這些你必須會
Mq ,我用的rocketmq,你得知道為什么用,重復消費,順序訊息,事務訊息,高可用,訊息丟失,擠壓場景,
整個訊息發送消費的流程,讀過原始碼更佳,更好吹
Netty的話,零拷貝,bio,nio,aio,架構設計怎么樣子的?用過看過更好
演算法,建議去刷題,我運氣好,簡單的演算法讓我碰到了,一些快排,堆排,二叉樹相關的,鏈表反轉,成環,環節點,
跳樓梯等常規的簡單演算法建議刷刷,雙指標,dp,遞回這些還是多找找感覺,大資料記憶體有限的場景的統計,
有時間一些middle可以去試試,手寫紅黑樹你要是可以,那我估計演算法你穩了,
網路,http,tcp,https,udp,7層網路協議等,最好結合自己理解,背,你都要背下來,
還有就是一些分布式事務實作,架構實作,比如搶紅包,高并發下單等常規的場景設計,你來設計,你怎么去設計?
多找一些大牛或者上網自己查,幫你看看有哪些漏洞,有那些解決方案?業界有哪些好的中間件?
關于面試題的答案請看以下三個鏈接:
https://liaozhiwei.blog.csdn.net/article/details/115136786
https://gitee.com/java_wxid/Java-knowledge-system-induction
https://blog.csdn.net/java_wxid/category_10952283.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/281230.html
標籤:其他
上一篇:【TensorFlow2.x開發—基礎】 模型保存、加載、使用
下一篇:真-淺談CPU設計及其運行機制
