海歸碩士面試3家大廠掛了2個,成功拿到字節跳動offer,分享面經

來自海歸本人的自述

陸陸續續投了20多家公司,數不清頂著時差做了多少筆試,無數個不眠的夜都在不斷地懷疑自己中度過(菜雞本雞沒跑了),收到的面試卻仍然屈指可數,主要以大廠為主,結局雖不圓滿但能看到自己的付出所帶來的成長。

以下面經已過濾項目相關問題

一、阿里 (會員中臺)(一面掛)

1. Java

重寫hashcode()是否需要重寫equals(),不重寫會有什麼後果

2. 併發

自旋鎖和阻塞鎖的區別公平鎖和非公平鎖的區別jdk中哪種數據結構或工具可以實現當多個線程到達某個狀態時執行一段代碼柵欄和閉鎖的區別如何使用信號量實現上述情況

3. JVM

新生代和年老代的GC算法分別是什麼標記清除和標記整理的區別瞭解過CMS收集器嗎

4. 網絡

解釋HTTPsHTTPs為什麼要用對稱加密+非對稱加密,相對於只使用非對稱加密有什麼好處

5. 數據庫

給定一個表,其中有三列(員工名稱,工資,部門號),找出每個部門工資最高的員工

6. 代碼

LeetCode 863 二叉樹中所有距離為K的結點

二、阿里 - 新零售技術事業群(一面掛)

1. 框架

用過哪些Java開源框架講一講對Spring的理解看過IOC和AOP的源碼嗎它們底層是如何實現的用過其他什麼框架瞭解過分佈式或者微服務的開源框架嗎講一講對分佈式系統模型的理解分佈式系統中有一個節點宕機怎麼辦分佈式系統如何實現負載均衡

2. 數據庫

MySQL和Oracle數據庫有哪些不同數據庫有哪些鎖表鎖和行鎖的區別哪些場景需要加表鎖插入一條數據需要加什麼鎖分佈式數據庫如何保證數據可靠性瞭解過MySQL的主從複製嗎

三、騰訊 - TEG (一面掛)

1. 數據結構

B+樹與紅黑樹的區別

2. Java

HashMap的底層數據結構,侷限性與線程安全如何實現線程安全的HashMapCollections.sychronizedMap與ConcurrentHashMap的區別HashMap與ConcurrentHashMap的性能比較

3. JVM

類的編譯過程類的加載過程JVM的內存空間JVM的GC機制

4. 操作系統

進程與線程的區別進程間如何通信共享內存與Socket的優缺點與性能比較子進程從父進程繼承了什麼什麼是殭屍進程線程與協程的區別

5. 網絡

TCP的四次揮手TIME_WAIT狀態處在哪一方以及為什麼需要它TCP與UDP的區別與可靠性如何實現UDP的可靠傳輸

6. 數據庫

解釋ACID四大特性原子性的底層實現數據庫宕機後恢復的過程如何保證事務的ACID特性MySQL日誌類型

7. 分佈式

談談對分佈式系統的理解分佈式數據庫的實現如何保證不同數據庫之間的數據一致性如何實現主從數據庫間的同步

四、騰訊 - FIT (一面掛)

1. 網絡

TCP三次握手/四次揮手TIME_WAIT狀態網絡延遲大的情況怎麼處理HTTP請求到響應全過程(服務端)HTTP請求頭及其作用HTTP和HTTPsHTTPs的握手過程

五、字節 - 頭條(二面掛)

1. 一面

操作系統講一講進程和線程講一講多線程和線程池Linux的最大進程數限制

WEB

輸入URL到頁面加載的過程後端怎麼處理前端傳過來的文件

JVM

GC機制(GC算法,分代收集,收集器,STW)

代碼

給定一個數組a[N]和一個整數P,求a[i] + a[j] + a[k] =P,保證i

2. 二面

數據庫

身份證如何有效建立索引Innodb索引類型聚簇索引和非聚簇索引的區別索引失效的情況寫一個分頁查詢

Java

JMM內存模型Classloader雙親委派機制講一下ThreadLocal線程間如何通信

六、字節 - 頭條 - 客戶端開發(已拿offer)

1. 一面

操作系統

講一下進程和線程講一下線程安全

智力題

兩個人拋硬幣,先拋的人贏的概率

代碼

單鏈表排序,奇數位升序,偶數位降序

2. 二面

WEB

HTML,JS,CSS的區別輸入URL到頁面加載的過程HTTP的長連接和實現原理

Java

創建和終止一個線程講一下熟悉的容器類ArrayList中如何刪除某個元素的所有相同元素講一下迭代器的實現原理

SQL

學生表 Student (S#,Sname,Sage,Ssex),課程表 Course (C#,Cname),成績表SC (S#,C#,score),查詢平均成績大於 60 分的同學的學號和平均成績

代碼

Leetcode 283 移動零

3. 三面

智力題+數據結構+代碼

撲克牌的移動

併發

樂觀鎖和悲觀鎖的區別兩種鎖在Java中的具體實現兩種鎖的使用場景

七、阿里 - 供應鏈平臺事業部(二面掛)

1. 一面

框架

講一下IOC對SpringBoot的理解Mybatis中#和$的區別

Java

HashMap底層實現和擴容機制

代碼

Leetcode 206 鏈表反轉

數據庫

InnoDB和MyISAM的區別

其他

SQL注入

2. 二面

算法和數據結構

講一下紅黑樹紅黑節點的個數紅黑樹的插入刪除查詢時間複雜度講一下B+樹B+樹的插入刪除查詢時間複雜度講一下堆的性質及應用場景建堆時間複雜度各種排序算法的時間複雜度及穩定性

數據庫

講一下三範式

網絡

為什麼要三次握手二次握手有什麼問題三次握手有哪些缺陷TCP是如何控制流量的發送方發送頻率過高造成丟包,TCP是如何解決的講一下OSI網絡架構HTTP在哪一層HTTP報文結構HTTP首部字段HTTPs加密在哪一層實現

操作系統

講一下虛擬內存如果訪問虛擬地址時,該地址在物理內存中不存在,會發生什麼

Java

講一下volatilevolatile底層實現static修飾用法和區別

JVM

講一下GC算法JVM內存空間

代碼

Leetcode 2 鏈表相加

函數式編程

函數式編程和麵向對象編程的區別jdk8為什麼要引入函數式編程

機器學習

講一下梯度下降梯度下降能保證收斂嗎

當然不只是面試題,小編這裡也拿到了這位朋友備戰大廠面試的一些面試資料準備免費分享給大家,有想獲取的朋友,轉發關注後,私信【大廠資料】即可