【慶祝1024程式節】分享螞蟻4面同程藝龍3面,拿到螞蟻P6 offer

2020-10-25 10:00:44

 慶祝1024程式節 百萬開源英雄齊聚嶽麓 見證開源新時代

 

前言 

個人覺得面試也像是一場全新的征程,失敗和勝利都是平常之事。所以,勸各位不要因為面試失敗而灰心、 喪失鬥志。也不要因為面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!  

本篇分享的面試題內容包括:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技術棧。

有些人總是問為什麼要公開大廠的面試題?

原因一:身邊從事 Java 開發的人員越來越多,我的表弟表妹們,朋友的表弟表妹們,朋友的朋友的表弟表妹們,每次問我要相同的面試複習材料,已經讓我疲於應付,索性整理出來,直接發連結給他們。

原因二:節省招聘雙方彼此的時間,有些來公司面試人,無論是有幾年工作經驗的還是剛畢業的,就連這些最基礎的面試題都搞不定,這確實讓人很遺憾。常言道「一屋不掃何以掃天下」,也是同樣的道理,如果連基礎的概念都搞不明白,又怎麼讓面試官相信你能寫出高品質的程式呢?與其浪費彼此的時間,還不如花點時間把自己的基礎知識掌握牢固。

原因三:提高 Java 從業人員整體的能力模型,讓優秀的人能「冒」出來。有了這些面試題不意味著,死記硬背之後就能進入企業工作,尤其是 BAT 等工作崗位競爭更為激烈,這些面試題只能成為面試體系中的一道「開胃菜」,從而提高了整個 Java 面試的壁壘,讓願與學的人,變的更加優秀,從而和懶惰的人拉開差距,讓企業也能更輕易的甄別。

這些面試題包含哪些內容?

這份面試題包含了 19 個模組:Java 基礎、容器、多執行緒、反射、物件拷貝、Java Web、異常、網路、設計模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 等。有需要的可以點選這裡免費領取哦

如下圖所示:

本面試題解決的痛點

  • 稀缺性,提供真實的,覆蓋面全的面試集合,包含 200+ 面試題。
  • 權威性,解決了目前市場上答案太舊甚至是錯誤的問題。
  • 真實性,這份面試題是企業常用的,不會偏離實際。
  • 易理解性,通俗易懂條理清晰,部分面試題包含題目解析和程式碼範例,讓小白也能看的懂。
  • 節約時間,遮蔽無效重複資訊,為真正需要面試題的人節省檢索時間。

適宜閱讀人群

  • 待面試的 初/中/高階 Java 程式設計師
  • 查漏補缺的人
  • 想要不斷完善和擴充自己 Java 技術棧的人
  • Java 面試官

限於篇幅的原因,答案不能完全展示

面試題展示

螞蟻社招Java崗面經分享

 

MySQL相關

1、Mysql的技術特點是什麼?

2、Heap表是什麼?

3、Mysql伺服器預設埠是什麼?

4、與Oracle相比,Mysql有什麼優勢?

5、如何區分FLOAT和DOUBLE?

6、如何獲取當前的Mysql版本?

7、Mysql中使用什麼儲存引擎?

8、Mysql驅動程式是什麼?

9、主鍵和候選鍵有什麼樣的區別?

10、如何使用Unix shell登入Mysql?

11、你怎麼看到為表格定義的所有索引?

12、InnoDB是什麼?

RabbitMQ相關

1、什麼是rabbitmq?

2、為什麼要使用rabbitmq呢?

3、使用rabbitmq的場景。

4、如何確保訊息正確地傳送至RabbitMQ? 如何確保訊息接收方消費了訊息?

5、如何避免訊息重複投遞或重複消費?

6、訊息基於什麼傳輸?

7、訊息如何分發?

8、訊息怎麼路由?

9、如何確保訊息不丟失?

10、使用RabbitMQ有什麼好處?

11、rabbitmq的叢集。

12、mq的缺點。

Spring Boot相關

1、Spring Boot、Spring MVC 和 Spring 有什麼區別?

2、什麼是自動設定?

3、什麼是 Spring Boot Stater ?

4、你能否舉一個例子來解釋更多 Staters 的內容?

5、Spring Boot 還提供了其它的哪些 Starter Project Options?

6、Spring 是如何快速建立產品就緒應用程式的?

7、建立一個 Spring Boot Project 的最簡單的方法是什麼?

8、為什麼Spring Initializr 是建立 Spring Boot Projects 的唯一?

9、為什麼我們需要 spring-boot-maven-plugin?

10、如何使用 SpringBoot 自動重灌我的應用程式?

11、什麼是嵌入式伺服器?我們為什麼要使用嵌入式伺服器呢?

12、如何在 Spring Boot 中新增通用的 JS 程式碼?

【同程藝龍】一年Java經驗一、二面面經(已拿offer)

直接上面經內容:

1. 請求響應斷鏈如何解決?請求下單之後,網路斷開了,我們這邊請求沒接收到下單的結果怎麼辦?
2. 重複出票怎麼處理?重複下單怎麼處理?
3. 分散式鎖如何實現的?redis分散式鎖和zk分散式鎖有什麼區別?
4. redis分散式鎖實現的話,setnx和expire命令,如果A執行緒將expire操作操作到了B執行緒了,也就是expire了另一個執行緒的資源,這種怎麼避免?
5. 執行緒池是什麼?
6. Future是什麼?有什麼作用?
7. 執行緒池核心數是20個,最大執行緒數是40個,講一下任務進入執行緒池的原理邏輯?
8. 執行緒池阻塞佇列有哪幾種?
9. 優先佇列了解嗎?優先佇列底層實現機制?
10. 你說下LinkedBlockingQueue底層阻塞的原理是什麼?
11. 你說一下ReentrantLock和Synchronize的區別?
12. ReentrantLock和讀寫鎖的區別?
12. AQS裡的setState()是什麼時候呼叫?
13. 講一下鎖的升級策略?
14. HTTP和HTTPS的區別?
15. 對稱加密和非對稱加密有什麼區別?HTTPS是用到了那種加密方式?
16. 看你簡歷說是熟悉JVM,那JVM有哪幾種GC演演算法?
17. 新生代中為什麼會有From Survice和To Survice區?
18. 使用CMS垃圾收集器時,遇到大物件比較多導致頻繁GC,該如何解決這種情況?
19. GCRoot是什麼?哪些物件是GCRoot?
20. MySQL中有哪些索引型別?
21. B+樹和B樹有什麼區別?
22. 聯合索引什麼情況下會失效?
23. 最左匹配原則是什麼?
24. MySQL有哪幾種隔離級別?
25. 幻讀是什麼?RR隔離級別能解決幻讀嗎?那RR隔離級別是怎麼解決幻讀的?
26. 你知道間隙鎖嗎?間隙鎖的作用是什麼?是怎麼解決幻讀的?
27. SpringAOP瞭解嗎?有哪幾種實現方式?
28. CGLIB什麼情況下會失效?
29. 為什麼要同時重寫equals和hashcode?

 

總結:其實場景題還是老樣子,回答的不好,然後知識點之間細節沒拉滿,歸根結底就是學的不夠好,不夠紮實。自己離網際網路大廠還是有大差距,接下來還需加倍努力提升自己的水平,要拉滿細節!!!

========== 分割線 ==========

公司:同程藝龍成都bu

崗位:Java開發工程師 形式:現場面試(二面) 時長:50min

 

二面

現場部門老大面 是在同程藝龍成都辦公地面試的,時間是在週六下午三點,公司週末雙休沒上班,只有面試官、hr以及前臺小姐姐幾個人。

  1. 你在專案中學習到了哪些?或者是遇到了哪些困難?怎麼解決的?
  2. 如何保證你的呼叫鏈路的穩定性?如何保證服務呼叫鏈路請求的冪等性?
  3. mq訊息的冪等性如何保證?
  4. mq如何保證順序消費?
  5. 執行緒池建立有哪幾種方式?
  6. 執行緒池核心引數有哪些?
  7. 執行緒池中拒絕策略有幾種?分別說一下各自的作用?
  8. Redis都用到了哪些場景?除了快取還有其他場景嗎?
  9. 快取雪崩、穿透、擊穿是什麼?如何解決?
  10. 對於穿透解決方案給key對應的value對寫為null、未知錯誤、稍後重試時,如何解決當資料庫真的有對應資料時,快取資料沒更新導致正式使用者請求存取不到快取?
  11. 你剛剛是講到了布隆過濾器嗎?講一下布隆過濾器的作用以及底層原理?
  12. 如何保證快取和資料庫資料一致性?
  13. 對實時性要求比較高的快取如何保證和資料庫資料一致性?
  14. 在Redis中常用的資料結構有哪些?
  15. Redis中Hash結構的擴容機制是什麼?那你可以講講HashMap的擴容機制嗎?
  16. Redis中的過期機制有哪幾種?底層都是如何實現的?
  17. Redis的部署有哪些方式?
  18. Redis的cluster和Setinel實現原理是什麼?
  19. 資料庫的查詢優化、排查慢sql以及sql優化是怎麼進行的?詳細點說明下
  20. InnoDB中雜湊索引實現機制是什麼?
  21. MySQL中唯一索引和聚鏃索引相比,效能如何?
  22. 除了常用排序演演算法,你還會用到什麼演演算法?或者瞭解什麼演演算法?
  23. Redis中跳錶的原理了解嗎?
  24. 專案中用過自定義SpringBoot starter嗎?starter是如何實現的?
  25. 有沒有做過或瞭解過大批次資料遷移,類似於大批次MySQL資料遷移到ES中的操作?
  26. 分散式事務瞭解嗎?你們專案中都用到了哪些分散式事務?都有哪些優缺點?
  27. 說一下JVM記憶體模型有哪些?說一下JVM的記憶體區域?
  28. 在Java中,有哪些包是直接定義在對外記憶體中的?
  29. 線上做過哪些效能排查以及效能優化的操作?
  30. 瞭解Java中的happen-before原則嗎?
  31. 除了用鎖、volatile之外,如何保證一個執行緒的變數能被另外一個執行緒的變數給實時讀取到?

總結:本次面試在經過面試官的同意後對本次面試進行了錄音,方便之後進行面試覆盤。從這次覆盤的結果來看,此次部門老大面沒怎麼問簡歷上的內容,估計是一面裡有面試記錄,所以一面面的大部分內容都沒有再次問到。從這次面試來看,對於一個知識點你理解了和用你自己的語言表述出來是兩種不一樣的情況!!然後就是自己在Java技術棧的廣度和深度都欠缺太多,想進網際網路大廠的話還任重道遠啊。許願Offer。

非常幸運,成功上岸拿到了offer,入職之後還需要繼續加倍努力,衝鴨!!!

到此這篇關於文章就結束了!

最新整理的Java技術乾貨檔案資料:【Java核心知識點整理】涵蓋29個Java核心技術詳解,JVM,Redis,Nginx,Spring Boot,Spring Cloud,Kafka,並行程式設計,Tomcat,MyBatis,BAT面試題,Java技術精講視訊等。轉發+關注,有需要的可以點選這裡免費領取哦

掌握了這些知識點,面試時在候選人中又可以奪目不少,機會都是留給有準備的人,只有充足的準備,才可能讓自己可以在候選人中脫穎而出。