秋招結束,我拿到了華為小獎狀!

JavaGuide發表於2024-09-11

這是一位讀者去年投稿的面經。這位讀者的學歷是 211 本科 + 985 碩士,參加 2024 屆秋招,拿到了招銀網路金融科技、某證券金融科技、去哪兒、華為等公司的 offer。

最後,他選擇了離家近的券商。

下面是正文。

拿到的 Offer 總結

  1. 招銀網路金融科技(軟開,總包 27w)
  2. 證券金融科技(大資料)
  3. 去哪兒(白菜,22k15薪)
  4. 上海銀行(大資料,總包大概 25w)
  5. 華為(14c,22k)

背景介紹

  • 學歷:211 本科 + 985 碩士,不算特別頂尖的學歷。
  • 專業:非科班,計算機相關專業,有一定編碼基礎。

準備過程

我在 2021 年 10 月左右正式開始準備後端工作。在此之前,我僅學習了 Java SE 和 MySQL。之後,我開始學習框架、做專案等。

像大多數人一樣,我透過觀看黑馬程式設計師和尚矽谷的影片慢慢學習,並做了 LeetCode 刷題。(這裡建議慎重選擇專案,大廠對專案的要求是實際貼合且具有難度。我曾因專案做法不當被餓了麼和美團吐槽。大廠的專案實現方式與我們通常的做法不同。)

我做了兩個專案,一個是秒殺商城,一個是微服務相關的專案。秒殺商城專案雖然增加了我對框架的理解和能力,但面試時容易被質疑,因為它與實際情況有些脫節。

面試問題分享

以下是一些公司的面試問題,公司的名字用縮寫代替。

部分面試題的答案,我給出了對應的文章連結。對於沒有給出連結的面試題,可以自行搜尋一下答案。

另外,推薦一下 《Java 面試指北》 以及 JavaGuide ,這裡面對常見的面試問題均有涉及,知識面非常廣,對我的幫助也很大。

WD

  1. 大資料比賽:在大資料場景下如何進行資料清洗?
  2. 什麼時候開始學習 Java 開發的?怎麼學的?
  3. IoC 的作用,為什麼能解耦?
  4. AOP 解決了什麼問題,應用場景是?
  5. Spring Boot 相比 Spring 有什麼最佳化?為什麼使用 Spring Boot?
  6. 使用過 Spring Cloud 嗎?有哪些元件?可以做什麼?
  7. Nginx 負載均衡,客戶端負載均衡和服務端負載均衡的區別?
  8. 如何設計一個優先順序任務執行緒池?
  9. HashMap 的原理?怎麼實現的?
  10. 什麼是 SPI?SPI 的原理是什麼?

GT

  1. 有用過事務嗎?事務的傳播屬性?
  2. 事務失效的情況(動態代理?)
    • 在方法中捕獲異常而沒有丟擲去。
    • 非事務方法呼叫事務方法。
    • 事務方法內部呼叫事務方法。
    • @Transactional 標記的方法不是 public。
    • 丟擲的異常與 rollbackFor 指定的異常不匹配。
  3. 訊息丟失了怎麼辦?
  4. 父執行緒如何傳遞資訊給子執行緒?
  5. ThreadLocal?
  6. 冪等性,如何避免重複消費?在專案裡是怎麼做的?如果訊息重複了,如何避免庫存的重複扣減?
  7. 為什麼需要分散式事務?常見分散式事務解決方案有哪些?
  8. 多執行緒,執行緒池原理、引數、阻塞佇列?
  9. 多執行緒怎麼建立?Future 類如果一直等待返回值的話要怎麼處理?

Lazada

  1. 專案遇到的難點?
  2. 庫存怎麼扣減的?併發場景下怎麼實現?
  3. 樂觀鎖機制的秒殺場景下,SQL 怎麼寫?庫存表是怎麼設計的?
  4. 執行緒池引數怎麼設定?需要考慮哪些因素?
  5. 哪些工具用來排查記憶體洩漏問題?
  6. 標記清除演算法是怎麼標記垃圾的?如何解決引用的依賴問題?
  7. 什麼是樂觀鎖和悲觀鎖?Java 中 CAS 是如何實現的?ABA 問題的解決?
  8. 如何檢測和避免執行緒死鎖?
  9. LinkedList、ArrayList、HashMap 實現原理?LinkedList、ArrayList 實現插入元素是怎麼實現的?
  10. 為什麼使用紅黑樹?有什麼優勢?紅節點和黑節點?
  11. JVM 執行時資料區,垃圾回收機制?

JXJK

  1. 鎖升級的機制?
  2. Java 中的鎖機制?
  3. Spring Boot 自動注入出現空指標的情況如何排查?
  4. 自動注入失敗的情況?空指標報錯的情況?
  5. 介面可以定義變數嗎?
  6. MySQl 索引失效的場景有哪些?
  7. 索引,如果一個欄位只有“男”,“女”,“其他”,適合拿來作為索引嗎?
  8. 如果有兩個欄位一個有 100000 行一個有 100001 行,如何挑出不同的這個數字?
  9. Redis 的記憶體淘汰策略?
  10. 除了Redis,你還知道其他分散式快取方案嗎?
  11. 重量級鎖加鎖過程?重量級鎖解鎖過程?
  12. 輕量級鎖加鎖過程?輕量級鎖的鎖膨脹?
  13. 偏向鎖的鎖膨脹?
  14. 介面可不可以定義成員變數?

KS

  1. 執行緒池引數有哪些?
  2. 什麼是 CPU 密集型的任務?引數怎麼設定?
  3. NIO 和 BIO,IO 多路複用?
  4. Java 的值傳遞?
  5. Spring、Spring Boot、MyBatis 原始碼看過嗎?
  6. TCP 為什麼要三次握手和四次揮手?
  7. HTTPS 是如何保證傳輸安全的?
  8. 迴文連結串列

MT

  1. 執行緒有哪些狀態?狀態之間是如何變化的?
  2. 執行緒池中執行緒異常後,銷燬還是複用?
  3. Spring 中 Bean 的生命週期是怎樣的?
  4. Spring 的 Bean 是執行緒安全的嗎?

AL

  1. 叢集和分散式的區別?
  2. 行鎖什麼時候升級為表鎖?

最終選擇

最後,我選擇了離家近的券商。雖然華為是我心中的意難平,但考慮到我已近三十歲,也沒信心一直待下去。唉……

相關文章