一、Java相關
樂觀悲觀鎖的設計,如何保證原子性,解決的問題;
char和double的位元組,以及在記憶體的分布是怎樣;
對象記憶體布局,然後講下對象的死亡過程。
對象頭,詳細講下;
sync原理詳細,sync內拋異常會怎樣,死結嗎。還是釋放掉。怎麼排查死結。死結會怎樣。有沒有什麼更好的替代方案。
詳細講一下集合,HashSet源碼,HashMap源碼,如果要安全執行緒需要怎麼做。
多線程是解決什麼問題的。線程池解決什麼問題。
線程池,如何設計的,裡面的參數有多少種,裡面的工作隊列和線程隊列是怎樣的結構,如果給你,怎樣設計線程池。
AQS原理,ReentranLock源碼,設計原理,整體過程。
繼續聊多線程源碼,sync原理,然後一個情境設計題;
float f = 1.4f;double d = 1.4d; 與 float f = 1.5f;double d = 1.5d; 是否為true,記憶體是怎樣的;
split的源碼,split(“a|b|c”);得出多少個數組;
把所有認識熟用的JUC( java.util.concurrent(簡稱JUC)包)下的類寫出來,講下使用,然後講下原生的線程操作;
開閉原則,解析Factory 方法模式,建造者模式,區別。手擼出來。
講下JVM的大頁模式,JVM記憶體模型;
什麼是敏捷開發,防禦性編程,並行編程。Team Leader的思考;
逃逸分析是什麼,作用是什麼,用途是什麼;
怎麼認為一個類是安全執行緒。安全執行緒的定義是什麼。Java有多少個關鍵字進行同步。為什麼這樣設計。(聊了一大堆,一堆為什麼);
兩個線程設計題。記得一個是:t1,t2,t3,讓t1,t2執行完才執行t3,原生實現。
寫個尾碼運算式,為什麼要設計尾碼運算式,有什麼好處。然後寫下中綴。
我看你做過效能最佳化,比如你怎麼分析項目裡面的OOM的,記憶體泄露呢。詳細說思路;
說下多線程,我們什麼時候需要分析線程數,怎麼分析,分析什麼因素;
抽象方法和類方法的區別,static的抽象方法可以嗎。
說下Java的複製體系;
涉及OOM、JVM最佳化、源碼問題、資料庫最佳化、多線程等問題;
CPU高。什麼情況CPU高。解決什麼問題。
你有遇到過臨界區問題嗎。有遇到過嗎。你在項目遇到這個問題是怎樣解決的。
volatile關鍵字作用;
Java的多態怎麼實現;
解釋一下自旋;
解釋一下訊號量;
什麼情況下會觸發類載入;
Java記憶體抖動嚴重,最佳化的思路; 二、資料庫相關
SQL最佳化思路,聯合索引與底層樹結構的映像關係,索引結構(B+、B-),為什麼用這樣的結構;
講下MySQL的叢集。叢集遇到過什麼問題。sql的最佳化。
你目前為止遇到的最大資料量是多少。知道100萬時候怎麼設計嗎。1000萬呢。過幾十億呢。
MySQL有多少個參數可調,除了最大串連數。全部列出來,一個個分析。
聊下最佳化過的索引,怎麼最佳化;
紅/黑樹狀結構和平衡樹的區別,為什麼資料庫不用紅/黑樹狀結構;
mysql有哪些鎖,意圖鎖定有什麼用;
資料庫高並發下的最佳化思路;
資料庫什麼情況下索引會失效; 三、資料結構和作業系統相關
資料結構學過吧,聊一下。學過什麼結構。講下樹和隊列。B樹呢。
作業系統學過吧,聊一下。講一下系統記憶體是怎樣的。分段分頁虛擬記憶體。
頁面置換演算法呢。多少種。有最優的置換演算法嗎。
你學過什麼課程。然後聊下作業系統,核心、使用者之類。
反轉鏈表手擼;
快排,給一串數組,把具體每次patition寫下,最終結果也寫45, 32, 41, 35, 38, 20, 50;
一個整數status, 判斷第K個位元位是否為位元1;
把遞迴實現的快排改成非遞迴,你知道非遞迴有什麼好處嗎;
舉例使用分治思想的演算法; 四、網路相關
講下要求標頭細節。
Http和Https。Http1.0,1.1,2.0,講下長串連和短串連。Https是怎樣的。如果我篡改了公開金鑰呢。怎麼防止。
Get和Post,講下區別,要我類比出抓包來。
詳細講下Cookie和Session,Token,OAuth2.0協議;
擁塞演算法知道嗎。哪些,分別怎樣。
學過電腦網路是吧。socket熟悉嗎。對它的讀寫緩衝區有理解嗎。怎麼的。那滑動視窗是怎樣的。為什麼這樣設計。
再聊下Http的Http basic authentication;
Https的過程; 五、架構相關
聊下Spring源碼,知道多少,都聊一下;
聊下Spring註解,@Autowire,@Resource,以及他們的解析過程;
聊一下架構,接入層架構,服務層架構。聊下技術棧,Spring Boot,Spring Cloud、Docker;
Spring ioc的具體優勢,和直接New一個對象有什麼區別;
Servlet生命週期,是否單例,為什麼是單例;
Spring Mvc初始化過程; 五、分布式相關
多少種RPC架構。
一致性雜湊是幹嘛的。
搭建高並發高可用系統需要怎樣設計。考慮哪些東西,有多少說多少。
你對緩衝有什麼理解。緩衝是解決什麼問題。後端緩衝有哪些,分別解決什麼問題。
聊一下分布式鎖;
你是怎麼設計系統緩衝的,為什麼,什麼情境;
也來說下,削峰的多種實現,Redis。MQ。
為什麼用mq就能削峰。解決什麼問題。 六、設計題
有幾台機器儲存著幾億淘寶搜尋日誌,你只有一台2g的電腦,怎麼選出搜尋熱度最高的十個搜尋關鍵詞;
如何設計演算法壓縮一段URL;
有一個頁面能同時展示兩個廣告,現在有五個廣告,設計演算法使五個廣告展示機率為1:2:3:4:5;
有25匹馬,五個賽道,用最少比賽次數將25匹馬排序; 七、其他相關
Tomcat緩衝,聊下緩衝的整體理解,知道多少種緩衝;
解釋下Mucene原理,倒排索引,怎樣進行中文分詞,基於什麼進行分詞;
TopN的大資料量題;
你對接入層要思考什麼東西。遇到過哪些問題。搭建系統要考量哪些因素。
然後項目問題,最佳化問題;
熟悉maven是吧。我們來聊下Maven的源碼原理,Maven衝突的時候,怎麼選擇依賴包,我們怎麼查,我們遇到兩個不一樣的版本,我們應該如何去選擇,為什麼。
項目如何分組,效能最佳化小組應該做哪些;
我們來說下接入層的搭建,認知分析;
問下項目的系統構建,思考,為什麼這樣構建。
如何判斷一段代碼的好壞;
轉載連結 https://mp.weixin.qq.com/s/cpZgU1-QGgkfv4dhIhW1nw