攜程Java三面面經,已拿 offer!!

語言: CN / TW / HK

分享一位讀者投稿的攜程校招 Java 崗位的面經。

下面是正文。

個人背景:雙非本,機械專業轉碼。

攜程在正式面試之前,會有一個性格測試(40分鐘)。性格測試之後,大概過一週進行筆試。筆試之後,會郵件通知是否通過並預約第一輪面試時間。

普通 offer 一般只有兩面,如果是 sp 或者 ssp 的話,技術面貌似是三面。

攜程的面試難度一般,效率比較高,面試體驗還是不錯的。

一面(45min)

主要是問八股,難度較低。

  1. 自我介紹;
  2. 程序和執行緒的區別;
  3. 並行和併發的區別;
  4. synchronized 的作用;
  5. synchronizedReentrantLock 的區別,如何選擇;
  6. ThreadLocal 使用過程中可能存在的問題(記憶體洩露);
  7. ThreadLocal 記憶體洩露問題是怎麼導致的;
  8. 專案中是如何建立執行緒池的,什麼不用Executors 去建立執行緒池;
  9. 知道的本地快取,選擇 Caffeine 的原因;
  10. Redis 這類快取和 Caffeine 的區別;
  11. Redis 中常見的資料結構,應用場景;
  12. 快取穿透和快取雪崩的區別,解決辦法;
  13. MySQL 和 Redis 怎麼保持資料一致;
  14. 一個 SQL 筆試題,join 多表查詢(共享螢幕)。

答案:

二面(50min)

二面主要還是八股。

  1. 自我介紹;
  2. 使用多執行緒可能存在的問題;
  3. 執行緒池原理;
  4. 聊聊ThreadLocal (概念+一些應用舉例+常見的記憶體洩漏問題);
  5. JVM 記憶體模型和垃圾回收;
  6. 用到過記憶體分析工具嗎;
  7. 使用索引能帶來什麼好處,你專案中是怎麼使用的;
  8. 索引底層常見的資料結構,MyISAM 引擎和 InnoDB 引擎用的是哪種;
  9. 聚簇索引和非聚簇索引;
  10. 最左字首匹配原則;
  11. 造成索引失效的常見原因你知道那些,專案中遇到過索引失效問題嗎;
  12. 如果有一條 SQL 語句執行的很慢,如何進行優化;
  13. 專案中是如何使用 ES的;
  14. ES 檢索比較快的原因,為什麼 MySQL 不行;
  15. 講一下倒排索引;
  16. 手寫一個生產者消費者佇列;
  17. 反問。

答案:

HR面

  • 個人的基本資訊;
  • 對攜程的瞭解;
  • 三個詞形容自己;
  • 手裡還有哪些 offer;
  • 平時的興趣愛好;
  • 選擇工作的理由排序(薪資、加班情況之類的)。

英語測評

HR 面之後,還會有一個英語測評,題目比較多,對英語不好的同學不太友好。題型大概是閱讀、演講、聽力這些。

不過,也不用擔心,應該不太會因為英語測評的表現刷掉你,但英語測評還是可能會對你的面試評價造成影響,能做好還是要儘量做到最好。