BAT面經總結,阿里巴巴、百度、京東、餓了麼offer拿到手軟!

我感覺今年的寒冬有點冷。後續的面試過程中多做一些準備,看了幾篇不錯的面試經驗分享篇,給大家分享下我的求職體會,希望能給大家一些參考

阿里面試題

BAT面經總結,阿里巴巴、百度、京東、餓了麼offer拿到手軟!

  1. 多個線程同時讀寫,讀線程的數量遠遠大於寫線程,你認為應該如何解決併發的問題?你會選擇加什麼樣的鎖?
  2. JAVA的AQS是否瞭解,它是幹嘛的?
  3. 除了synchronized關鍵字之外,你是怎麼來保障線程安全的?
  4. Tomcat本身的參數你一般會怎麼調整?
  5. 你有沒有用過Spring的AOP? 是用來幹嘛的? 大概會怎麼使用?
  6. 如果一個接口有2個不同的實現, 那麼怎麼來Autowire一個指定的實現?
  7. 如果想在某個Bean生成並裝配完畢後執行自己的邏輯,可以什麼方式實現?
  8. SpringBoot沒有放到web容器裡為什麼能跑HTTP服務?
  9. SpringBoot中如果你想使用自定義的配置文件而不僅僅是application.properties,應該怎麼弄?
  10. SpringMVC如果希望把輸出的Object(例如XXResult或者XXResponse)這種包裝為JSON輸出, 應該怎麼處理?
  11. 如果有很多數據插入MYSQL 你會選擇什麼方式?
  12. 如果查詢很慢,你會想到的第一個方式是什麼?索引是幹嘛的?
  13. 查詢死掉了,想要找出執行的查詢進程用什麼命令?找出來之後一般你會幹嘛?
  14. 讀寫分離是怎麼做的?你認為中間件會怎麼來操作?這樣操作跟事務有什麼關係?
  15. 分庫分表有沒有做過?線上的遷移過程是怎麼樣的?如何確定數據是正確的?
  16. 你知道哪些或者你們線上使用什麼GC策略? 它有什麼優勢,適用於什麼場景?
  17. JAVA類加載器包括幾種?它們之間的父子關係是怎麼樣的?雙親委派機制是什麼意思?有什麼好處?
  18. 如何自定義一個類加載器?你使用過哪些或者你在什麼場景下需要一個自定義的類加載器嗎?
  19. 堆內存設置的參數是什麼?
  20. HashMap和Hashtable的區別。
  21. 實現一個保證迭代順序的HashMap。
  22. 說一說排序算法,穩定性,複雜度。
  23. 說一說GC。
  24. JVM如何加載一個類的過程,雙親委派模型中有哪些方法?
  25. TCP如何保證可靠傳輸?三次握手過程?

京東面試題

BAT面經總結,阿里巴巴、百度、京東、餓了麼offer拿到手軟!

  1. java常用的數據結構有哪些?哪些是線程安全的?是怎麼保證線程安全的?
  2. Redis中的Lua有沒有使用過? 可以用來做什麼? 為什麼可以這麼用?
  3. 線程池內部工作原理可以說一下麼?
  4. 死鎖是什麼意思,形成條件是什麼?出現死鎖是可以通過什麼方式去排查。
  5. 在交易過程中如何放在用戶在支付時的重複支付(交叉支付),請寫出你瞭解的方案或使用的過的方案。
  6. 數據庫索引有哪幾種,他們之間的區別。
  7. 程序開發時通過開發工具DeBug調試時,控制檯顯示的內容都包含什麼?哪些內容可以幫助你發現問題和解決問題。
  8. RPC通信過程中,假設A系統提供了一個方法入參是一個JavaBean,出參也是一個JavaBean。另外兩個系統B系統、C系統調用接口,調用方B想讓提供方A增加一個返回參數,假設服務提供方A增加了返回參數,請問C系統調用方需要做什麼處理?
  9. 瞭解哪些設計模式,用偽代碼實現一個你熟悉的設計模式。
  10. 講一下怎麼使用分佈式鎖。
  11. 說說HashMap的原理, 以及HashMap如何擴充bucket的大小。
  12. Redis的Pipeline是用來幹什麼的?
  13. Mysql索引的分類(Btree, hash),各自使用什麼情況 。
  14. 說說Myisam, Innodb區別。
  15. 知道哪些負載均衡算法。
  16. 說一下Btree的查找原理。
  17. 簡述三次握手,如果c端發起握手請求,s端無法立刻建立連接應該回應什麼?

去哪兒網面試題

BAT面經總結,阿里巴巴、百度、京東、餓了麼offer拿到手軟!

  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. 如果併發很大,你對數據的正確性怎麼保證。

餓了麼面試題

BAT面經總結,阿里巴巴、百度、京東、餓了麼offer拿到手軟!

  1. http和https的區別,https原理,http2.0與1.0的區別。
  2. Java的垃圾回收機制,Java文件加載機制,tomcat類加載機制,鎖機制,jvm原理及線上調優,jvm內存模型。
  3. 多線程,有哪些可以保持進程同步的方法,創建線程的幾種方法,對i++多線程訪問你會怎麼做。
  4. Java的設計模式,單例有什麼模式,懶漢為什麼加volotile,volotile的內存屏障,如何避免死鎖。
  5. 考慮單例模式的編寫,要線程安全且內存消耗小(劍指offer原題)。
  6. String、StringBuilder、StringBuffer區別;String類能被繼承嗎?為什麼?
  7. 在白紙上手寫二分法排序算法(lintcode上原題);二分查找的思想。
  8. 查找單鏈表中倒數第k個節點的算法,手寫(lintcode上原題);最常見的排序算法你見過哪些,快排的基本思想及時間複雜度。
  9. 常見的數據結構有哪些。
  10. hashmap、hashcode一樣,不equals怎麼處理 ;hashcode實現原理,currentHashMap原理,實現細節,怎麼實現同步的;類為什麼要有hascode方法,是不是主要在集合類中都要實現hashcode方法;equals方法怎麼實現;兩個不同的對象可能有相同的hashcode值嗎;常用集合有哪些。
  11. tcp三次握手,四次揮手協議。
  12. 架構設計一個開發性問題,設計一個Nginx管理的中間件,怎麼設計。
  13. 所有的類都繼承與object,你用過object類的直接子類有哪些,object類常用的方法有哪些。
  14. Java會出現內存洩漏嗎,如果回,在哪種情況下?
  15. 抽象類和接口的區別。
  16. 平時怎麼擴展自己的專業知識水平。

百度面試題

BAT面經總結,阿里巴巴、百度、京東、餓了麼offer拿到手軟!

  1. 什麼是 Java 的反射機制。
  2. Cookie 和 Session的區別。
  3. get 和 post請求的區別。
  4. IOC的優點是什麼。
  5. IO 和 NIO的區別,NIO優點。
  6. JRE、JDK、JVM 及 JIT 之間有什麼不同。
  7. Hashcode 的作用。
  8. 簡述一致性 Hash 算法。
  9. 為什麼在重寫 equals 方法的時候需要重寫 hashCode 方法?equals與 hashCode 的異同點在哪裡。
  10. 為什麼 Map 接口不繼承 Collection 接口。
  11. 說出幾點 Java 中使用 Collections 的最佳實踐?
  12. GC是什麼?為什麼要有GC。
  13. 什麼時候會導致垃圾回收。
  14. GC 有幾種方式?怎麼配置。
  15. 什麼時候一個對象會被GC? 如何判斷一個對象是否存活。
  16. 垃圾回收器的基本原理是什麼?
  17. Serial 與 Parallel GC之間的不同之處。
  18. JVM 中一次完整的 GC 流程是怎樣的? 對象如何晉升到老年代。
  19. 吞吐量優先和響應優先的垃圾收集器選擇。
  20. 說說你知道的幾種主要的jvm 參數。
  21. Java中存在內存洩漏問題嗎?請舉例說明。
  22. 什麼是線程,多線程的優點是什麼?以及簡單說一下多線程的幾種實現方式。
  23. ThreadLocal 用途是什麼,原理是什麼,用的時候要注意什麼?
  24. 線程池是什麼?為什麼要使用它?如何創建一個Java線程池?
  25. ThreadPool用法與優勢可以說一下麼?
  26. synchronized 的原理是什麼?synchronized 和 ReentrantLock 有什麼不同?
  27. 有T1,T2,T3三個線程,怎麼確保它們按順序執行?怎樣保證T2在T1執行完後執行,T3在T2
  28. 行完後執行同步塊內的線程拋出異常會發生什麼?
  29. 什麼是樂觀鎖(Optimistic Locking)?如何實現樂觀鎖?如何避免ABA問題。
  30. Java中活鎖和死鎖有什麼區別?
  31. Executors類是什麼? Executor和Executors的區別?
  32. 什麼是設計模式(Design Patterns)?你用過哪種設計模式?用在什麼場合?
  33. 你能寫出三種單例模式實現麼?
  34. 你知道Google是如何在一秒內把搜索結果返回給用戶?
  35. 高併發下,如何做到安全的修改同一行數據?
  36. 如何避免瀏覽器緩存。
  37. 大型網站在架構上應當考慮哪些問題?
  38. 最近有在看什麼書麼,印象最深刻的是什麼?
  39. 你們線上應用的 JVM 參數有哪些?
  40. 能簡單說下你對算法的理解麼?

面試心得

1.準備要充分,知識面要儘量的廣,同時深度也要夠。

2.面試安排上,如果不著急,儘量給自己留多時間,兩天一家,及時做總結和補充。

3.心態要放平,當做一次技術交流,面試要看一部分的運氣,也要看一些眼緣,有的面試官一張嘴你就能感覺到你這次面試完了。想去的公司沒有面試好,不要氣餒,繼續加油準備。

4.簡歷投遞方面,拉勾上投了很多經常不匹配,可能是我學歷問題(自考本),有一些打擊自信心,如果有同樣感受的,不妨換BOSS或者其他平臺。避免打擊自信心。

5.寫簡歷一定要體現自己的優勢,最好能體現類似於,用到了什麼技術,解決了什麼問題。簡歷上寫到的一定要胸有成竹。

6.類似於你的優勢是什麼,你覺得你項目中做的比較好的地方有哪些,你能給公司帶來什麼,這種問題心裡要先想一些,免得臨場發揮容易緊張說不好。

7.我所經歷的面試,一般技術面最少是兩輪。如果一輪後讓你走了,而你還自我感覺良好,那我覺得你有必要回顧一下面試內容,並一條一條找找該問題的相關內容,大部分問題就在於你沒有答到點子上,可能是深度不夠,也可能是擴展不夠,繼續加油。

面試題整理

由於篇幅過長的原因,為了不影響大家的閱讀效果,文中沒有給到所有的答案。我這裡以文件的形式整理好了,需要借閱的程序員朋友可以免費來領取。

面試文件獲取方式:

轉發+關注我,後臺私信回覆【Java架構】領取面試資料(助你金三銀四能跳槽漲薪)

收集了還有你不知道的其它面試題(springboot、mybatis、併發、java中高級面試總結等)

BAT面經總結,阿里巴巴、百度、京東、餓了麼offer拿到手軟!

BAT面經總結,阿里巴巴、百度、京東、餓了麼offer拿到手軟!

相關推薦

推薦中...