香格里拉+去哪網Java面試題及總結

shaoxiansen發表於2018-12-12

首先香格里拉

1.Lock和synchronized區別

2.用lock的好處是什麼,怎麼變成公平鎖。

3.說一下volatile。

4.負載因子是什麼,擴容的閥值是什麼?

5.樂觀鎖和悲觀鎖什麼場景下使用,都是怎麼實現的?

6.怎麼看sql用到了索引。

7.開發分業務性和非業務性,非業務性中經常碰到容量,併發,安全,效能等等,你是怎麼解決的。

8.說一下學習jvm後對自己寫程式碼上有什麼提高和幫助。

9.說一個你認為你因為鑽研技術而成功解決的棘手問題。

10.你期望的team和platform是什麼樣的。

11.抗壓能力怎麼樣?

12.你認為什麼場景下使用執行緒池。

13.mysql複製原理。

14.簡單說一下建立索引。

15.引申一下like什麼時候能用到索引。

16.利用索引怎麼對sql進行優化。

17.說一下你認為什麼是高效,可讀性強的程式碼和這方面對書。

18.你用對jdk什麼版本,用過stream嗎?

19.怎麼保證你對訊息傳送是一致性的。

20.mysql配置主從優點是什麼。

總結:

1.除網際網路公司或面高階以上的開發,JVM相關的東西不需要了解很深,筆者把複習的重點就放在這裡了,是走錯了方向,我曾經多次引導每位面試官,考我JVM原理,隨便考,他們都回避這個問題,不是說jvm不重要,而是筆者沒有能力去面試高階開發。

2.網際網路公司面試一定會考你大量資料的處理,資料庫及sql的優化以及高併發,安全相關的問題。

3.基本上大公司包括很多網際網路大公司用SpringCloud的並不多,他們基本上在5,6年前或者國內剛剛興起微服務的時候就開始做,所以都用的Dubbo,能用到springcloud專案的都是近兩年的新專案。

4.簡歷上寫什麼精通就考你哪個,所以精通不要亂寫。

5.簡歷上最能突出你的優勢就是類似於你憑自己的經驗解決了很棘手的問題,或讓系統效能有很大的提成,比如你用什麼方式讓你們系統從TPS 50上升到1000甚至更高。

6.有部落格和自己開源專案會大大加分。

7.不要跟面試官說我很會用什麼很多開源框架、中介軟體什麼的,他們其實最關注的是你懂,懂和會用完全兩碼事。

8.要從話語裡突出和說明你學習能力強,善於知識總結和分享。

9.大公司對務實很重要,對精通很重要,好比中介軟體,哪怕你只會rabbitmq,但是你能說做到完全精通,比你會所有中介軟體都強的多,簡歷裡不要寫很多技術,拿出幾個拿手的,上面寫上精通,並處理什麼什麼問題更好。

10.能有帶隊,獨立解決團隊所有問題,在team中屬於leader的角色一定要寫,會加分。

11.我認為除應屆生,java基礎並不用過於放太多精力,主要了解一些關鍵性的底層原理就行,例如cas、volatile、hashmap等。

12.有大型網際網路方面的經驗要有很大的優勢,做一年網際網路專案比你做三四年傳統專案學到的東西要多得多,並且每位面試官都會跟你提到,傳統行業和網際網路行業區別很大。

13.再次強調一點,知識儲備固然重要,但是精通才是更重要的,東西不再多在於精。相信看我部落格的大多都是3年及3年以上的兄臺,根據發展方向每個人擅長的領域會不同,比如有些人就擅長資料庫效能調優,有些人最擅長非業務性的開發,比如安全,併發處理,容量等,所以,把自己擅長的東西拿出來。

14.還有跟人事聊天警惕性要增加,他們會面帶微笑,給你造成輕鬆的氣氛,但是句句話都有坑,可以說殺人於無形,說不定哪句話你就說錯了,所以一定要過濾一遍大腦想想他為什麼這麼問,你該怎麼回答。

15.沒有一個人是完全做技術的,技術是為業務服務的,真正的能力體現在分析不同的業務用適合他的技術去處理。

16.奉勸許多在選擇公司方面糾結的人,一定要選擇網際網路方面的公司,對做技術而言傳統的公司是一個敬老院,如果你年齡到一定程度了,對事業沒追求了這是一個不錯的選擇,否則還有一絲拼搏的精神那麼就不要在該奮鬥的年紀選擇安逸。

去哪網

1.自我介紹,專案介紹。

2.mysql資料庫調優。

3.sql優化。

4.like能用索引嗎?

5.java物件四種引用。

6.GC原理。

7.jvm記憶體結構。

8.說一下你學過jvm 在書寫程式碼上對你有什麼幫助和提高。

9.千萬資料量的查詢你會怎麼做?

10.HashMap在jdk1.7和1.8的區別,為什麼引入這個概念?hash碰撞怎麼解決,為什麼1.8要比1.7更好,好在哪?

11.關於你的專案,如果併發很大,你會怎麼改造。

12.方法區裡什麼樣的物件有可能被回收。

13.線上cpu飆升100%你怎麼處理。

14.頻繁FullGC怎麼處理。

15.執行緒池建立有幾種,為什麼建立定長的執行緒池個數最好是5,10,15這樣的數字。

16.linux命令。

17.伊甸區和倖存區可動態變化嗎?

18.redis和memcached區別。

19.說幾個jdk命令,jmap是什麼意思。

20.如果併發很大,你對資料的正確性怎麼保證。

總結:

1.除網際網路公司或面高階以上的開發,JVM相關的東西不需要了解很深,筆者把複習的重點就放在這裡了,是走錯了方向,我曾經多次引導每位面試官,考我JVM原理,隨便考,他們都回避這個問題,不是說jvm不重要,而是筆者沒有能力去面試高階開發。

2.網際網路公司面試一定會考你大量資料的處理,資料庫及sql的優化以及高併發,安全相關的問題。

3.基本上大公司包括很多網際網路大公司用SpringCloud的並不多,他們基本上在5,6年前或者國內剛剛興起微服務的時候就開始做,所以都用的Dubbo,能用到springcloud專案的都是近兩年的新專案。

4.簡歷上寫什麼精通就考你哪個,所以精通不要亂寫。

5.簡歷上最能突出你的優勢就是類似於你憑自己的經驗解決了很棘手的問題,或讓系統效能有很大的提成,比如你用什麼方式讓你們系統從TPS 50上升到1000甚至更高。

6.有部落格和自己開源專案會大大加分。

7.不要跟面試官說我很會用什麼很多開源框架、中介軟體什麼的,他們其實最關注的是你懂,懂和會用完全兩碼事。

8.要從話語裡突出和說明你學習能力強,善於知識總結和分享。

9.大公司對務實很重要,對精通很重要,好比中介軟體,哪怕你只會rabbitmq,但是你能說做到完全精通,比你會所有中介軟體都強的多,簡歷裡不要寫很多技術,拿出幾個拿手的,上面寫上精通,並處理什麼什麼問題更好。

10.能有帶隊,獨立解決團隊所有問題,在team中屬於leader的角色一定要寫,會加分。

11.我認為除應屆生,java基礎並不用過於放太多精力,主要了解一些關鍵性的底層原理就行,例如cas、volatile、hashmap等。

12.有大型網際網路方面的經驗要有很大的優勢,做一年網際網路專案比你做三四年傳統專案學到的東西要多得多,並且每位面試官都會跟你提到,傳統行業和網際網路行業區別很大。

13.再次強調一點,知識儲備固然重要,但是精通才是更重要的,東西不再多在於精。相信看我部落格的大多都是3年及3年以上的兄臺,根據發展方向每個人擅長的領域會不同,比如有些人就擅長資料庫效能調優,有些人最擅長非業務性的開發,比如安全,併發處理,容量等,所以,把自己擅長的東西拿出來。

14.還有跟人事聊天警惕性要增加,他們會面帶微笑,給你造成輕鬆的氣氛,但是句句話都有坑,可以說殺人於無形,說不定哪句話你就說錯了,所以一定要過濾一遍大腦想想他為什麼這麼問,你該怎麼回答。

15.沒有一個人是完全做技術的,技術是為業務服務的,真正的能力體現在分析不同的業務用適合他的技術去處理。

16.奉勸許多在選擇公司方面糾結的人,一定要選擇網際網路方面的公司,對做技術而言傳統的公司是一個敬老院,如果你年齡到一定程度了,對事業沒追求了這是一個不錯的選擇,否則還有一絲拼搏的精神那麼就不要在該奮鬥的年紀選擇安逸。

再送大家一套思維導圖:

現在加群即可獲取更加詳細的Java架構腦圖,還有Java工程化、高效能及分散式、高效能、高架構、zookeeper、效能調優、Spring、MyBatis、Netty原始碼分析和大資料等多個知識點高階進階乾貨的直播免費學習許可權及相關視訊資料,群號:923116658
點選連結加入群聊【Java架構解析】:https://jq.qq.com/?_wv=1027&k=5e1QsXb

架構師築基

香格里拉+去哪網Java面試題及總結

 

開源框架

香格里拉+去哪網Java面試題及總結

 

微服務

香格里拉+去哪網Java面試題及總結

 

高效能架構

香格里拉+去哪網Java面試題及總結

 

團隊開發

香格里拉+去哪網Java面試題及總結

 

最後當然是B2C,沒有實戰,還算什麼架構師

 

香格里拉+去哪網Java面試題及總結

相關文章