最全Java面試通關秘籍__Java

來源:互聯網
上載者:User
一、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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.