一面
先自我介紹下
聊項目,逆向系統是什麼意思聊項目,逆向系統用了哪些技術線程池的線程數怎麼確定?如果是IO操作為主怎麼確定?如果計算型操作又怎麼確定?Redis熟悉麼,瞭解哪些數據結構zset底層怎麼實現的跳錶的查詢過程是怎麼樣的,查詢和插入的時間複雜度紅黑樹瞭解麼,時間複雜度說下Dubbo的原理踩過什麼坑沒有CAS瞭解麼還了解其他同步機制麼我們做一道題吧,數組A,2*n個元素,n個奇數、n個偶數,設計一個算法,使得數組奇數下標位置放置的都是奇數,偶數下標位置放置的都是偶數時間差不多了,先到這吧。你有什麼想問我的?二面
主要是技術部分
1.volatile和synchronized原理
2.HashMap,ConcurrentHashMap
3.epoll,select,poll
4.TCP,UDP(tcp的具體狀態沒答出來
5.jvm內存分佈,垃圾收集,eden區
6.jvm調優(不會
7.java對象頭裡有什麼(只答了age,monitor,其他的忘了
8.mysql主從複製
三面
面試官和藹很多,你先介紹下自己吧你對服務治理怎麼理解的?項目中的限流怎麼實現的?具體怎麼實現的?如果突然很多線程同時請求令牌,有什麼問題?怎麼解決呢?如果不用消息隊列怎麼解決?分佈式追蹤的上下文是怎麼存儲和傳遞的?Dubbo的RpcContext是怎麼傳遞的?主線程的ThreadLocal怎麼傳遞到線程池?你說的內存洩漏具體是怎麼產生的?線程池的線程是不是必須手動remove才可以回收value?你說的內存洩漏是指主線程還是線程池?你說下SpringMVC不同用戶登錄的信息怎麼保證線程安全的?我們聊聊mysql吧,說下索引結構為什麼使用B+樹?什麼是索引覆蓋?Java為什麼要設計雙親委派模型?什麼時候需要自定義類加載器?我們做一道題吧,手寫一個對象池有什麼想問我的麼總結
面試官很專業,要求基礎知識很熟悉,面試之前一定要準備後再去面試。LeetCode題目也要刷。
切記面試前一定要刷題和準備,簡歷上的項目不熟悉的千萬不要寫上去,寫上去的項目備好2-3個技術方案。
我個人認為,作為技術人就要保持終生學習的態度,讓學習力成為核心競爭力,才能不被時代所淘汰,而高效的時間支配能讓你變得更加優秀,所以,
如何獲取免費面試學習資料?
資料獲取方式:
【關注+轉發】後,私信關鍵詞 【資料】即可免費獲取!