雙非一本非科班,以前在百度和字節實習過,此次其實沒抱着什麼特別大的但願投遞,沒想到字節能夠再給我一次機會,仍是挺開心的。java
幾場面試下來,面試得自信,聲音自信,給面試官一種你啥都會穩如狗的感受(實際心裏慌得不行...),而後表達流暢,吐字清晰,不卑不亢,說話要有邏輯性,不能吞吞吐吐半天說不明白,得總結本身的面經,造成本身的知識體系,別人的面經寫的再好也是別人的,本身刷面經總結本身不會的點整理出來纔是最有用的面試
下面是面試經歷所有寫的是技術面試,hr面就沒寫了算法
整個面試過程,主要圍繞算法和實習經歷考察,基礎知識的話不是很難。每一面的面試官都很nice,特別是三面的面試官,感受在討論的時候沒有帶着面試的壓力,就是朋友之間的對話。spring
抖音一面(60分鐘)數據庫
自我介紹編程
說下TreeMap和LinkedHashMap設計模式
TreeMap怎麼按照本身想要的順序排序數組
ConcurrentHashMap怎麼取的size值緩存
怎麼防止惡意請求刷接口tomcat
那ES怎麼切詞的呢,有寫過切詞插件嗎
你在項目中用Redis的場景
說下Redis有哪些數據類型
Redis怎麼分片的
Redis的刪除策略
抖音二面(60分鐘)
你但願你處於一個什麼樣的工做環境
怎麼根據0-5隨機函數獲得0-8隨機函數
緩存和DB之間怎麼保證數據一致性
延時消息隊列怎麼設計Redis的zset
zset作延時隊列會有什麼問題死循環輪詢耗時
說下索引二八原理、提高讀性能犧牲寫性能的數據結構一個索引對應一顆B+樹哈希、有序數組、二叉樹查詢的優缺點那爲何不用跳錶呢?
火車票區間查詢怎麼設計數據結構好比上海去武漢,途經南京、合肥如今要快速查詢出兩點之間票的庫存
手撕代碼,leetcode54螺旋矩陣
抖音三面(60分鐘)
手撕代碼,模擬微信羣隨機紅包,輸入金額、人數,返回金額數組;注意最小單位分;
聊項目,項目中的難點、模塊而後還問了一些依賴模塊的底層實現
項目的數據量以及QPS能達到多少
說下RPC,與HTTP的區別
你來字節最想獲得什麼我說但願技術能日新月異,面試官說你別說的太虛,實實在在的說...
你有什麼想問個人嗎
Paypal 一面(60分鐘)
聊項目,說項目中的模塊、技術難點
聊下ES內部的一些機制
ForkPoolJoin相對於線程池的優勢,及底層實現
詳細說下CMS和G1收集器
CMS怎麼處理垃圾碎片的
GC Root有哪些
String的intern方法有什麼用
說下公平鎖、非公平鎖,爲何非公平鎖性能更高
CAS的三個問題及解決方案
Paypal 二面(60分鐘)
說下項目中的難點
說下多線程中有哪些鎖
volatile關鍵字原理
說下ES的底層實現
大數據Spark、Hadoop、MapReduce有了解嗎
100萬的數組怎麼求最小的100個數字和最大的100個數字
手撕代碼,leetcode378有序矩陣中第K小的元素
Paypal 三面(60分鐘)
leetcode121買賣股票的最佳時機
JVM調優
詳細說說偏向鎖、輕量級鎖、重量級鎖問
新生代配合CMS收集器用的什麼收集器
JVM裏面會有幾個棧
爲何synchronized演變成重量級鎖後性能會降低
kafka有沒有用過
Redis怎麼保證高可用主從機制,哨兵機制
Paypal 四面(60分鐘)
問我機器學習和大數據這塊熟不熟悉答不會面試官說那我問你些java相關的問題
Spring Boot內部怎麼實現像tomcat那樣直接把war包扔到某個目錄而後運行起來整個項目
Spring Boot很大的jar包裏面好比說有個lib目錄,那這個lib若是讓你去加載,怎麼加載
你怎麼深刻的去學習JVM的
你怎麼去看的虛擬機的內存
Jconsole和VisualVM會拿到內存佔用的一個趨勢,那你以爲什麼樣的趨勢纔是合理的
Full GC和OOM時,我怎麼知道是哪一段代碼引發的內存溢出和泄漏
G1收集器有沒有Full GC線上服務GC日誌有沒有看過,G1 GC會有什麼關鍵詞
騰訊 一面(75分鐘)
自我介紹
哈希和紅黑樹的特色和應用場景
說下time wait,出如今哪一端,什麼緣由會致使time wait過多,怎麼解決
TCP和UDP的區別
用過什麼微服務的框架
項目中怎麼實現負載均衡的NginxF5
爲何一年不到就出來看機會
爲何不用MySQL的分庫分表,直接用ES
ES索引裏面都存儲了哪些字段
調度平臺模塊是怎麼調度的,什麼時間調度,讓你設計怎麼實現
騰訊 二面(60分鐘)
ES的倒排索引
瞭解分佈式事務嗎
MySQL的事務隔離級別
MySQL的主從備份機制
數據庫的表結構設計有哪些經驗
數據庫的分庫分表
關鍵幀提取的原理
限流怎麼實現的
DB和緩存怎麼保證數據的一致性
騰訊 三面(40分鐘)
怎麼保證緩存和DB之間的數據一致性
緩存穿透、緩存擊穿、緩存雪崩區別及解決方案
怎麼預估熱點key,怎麼解決熱點key問題
緩存的淘汰策略
CPP會嗎
騰訊 四面(170分鐘)
哈希存在的問題
Redis有序集合底層實現
爲何用跳錶不用紅黑樹
MySQL索引爲何用B+樹不用紅黑樹
zset有什麼應用場景
爲何用ES不用MySQL
項目的數據規模
爲何ES和MySQL都是基於磁盤,ES的查詢性能要高
面試官讓我共享屏幕講項目,邊講邊問
面試本質是一個自我優點展現的過程,不要把面試變成面試官問一句本身回答一句,主動拋出一些可能的點等面試官來問,好比我基本都被問到了DB和緩存之間怎麼保證數據的一致性,其實都是我本身刻意往上引的,好比面試官說,你用過Redis嗎,你能夠說,用過,通常用來做爲緩存配合MySQL提升性能,須要注意它們之間數據的一致性問題(不要太刻意,本身把握分寸),面試官大機率會接着問你是怎麼保證的
如下我最新總結的大廠Java必考題範圍和答案,內容點包含有java集合,jvm,併發編程,spring,mybatis,springMVC,微服務,Dubbo,netty,網絡,zookeeper,kafka,rabbitMQ,readis緩存,數據庫,設計模式 等一線大廠互聯網大廠常問到的面試真題,感興趣的朋友,能夠點擊這裏,暗號4399!
獲取方式:點擊這裏,暗號4399!
不要眼高手低,很多小夥伴看面經以爲本身啥都會,可是本身會與面試過程當中能清晰有層次的說出來是兩回事,而且本身會到什麼程度,有個說法很好,判斷你是否是真的掌握一個知識的一個點在於你能不能經過通俗易懂的語言教會一個徹底沒有相關知識背景的人,若是這能夠作到,那對知識的掌握必定是融會貫通的,面試過程當中必定能夠信手拈來。好比volatile關鍵字的原理,能不能說出點面試官眼前一亮的東西,和別的同窗走馬觀花不同的感受,這仍是不容易的