前言
應女友要求分享一波自己總結的大廠面經,花了不少時間整理,在整理程序中也重新復習了一遍,每一題都是精心挑選的!話也不多說,直接開始正文吧!

結尾有驚喜哦!
位元組一面(80分鐘)
面試官開始就坦言和我說不要有太多壓力,我這邊就是會問到你不會為止,太狠了,
SVN和Git的區別,fetch和pull的區別- 有沖突的時候需要怎么解決
- 介紹一下Docker,Docker和作業系統映射的關系
- 什么資料用
MySQL資料庫,什么資料放在Redis中,專案中實際遇到的舉例- 專案中最經常用到的
Redis資料型別- 為什么
rua腳本能保證原子性Nginx動靜分離的介紹,了解CDN嗎- 快取擊穿,快取一致性
Redis中資料的臟讀問題,如兩個不同的執行緒先后往資料庫中寫資料,再往Redis中寫資料,但是第二個執行緒先往Redis中寫了,第一個執行緒又去修改了Redis中的資料,造成了MySQL和Redis中的資料不一致,如何解決?不使用鎖如何解決?- 讀不需要變化,寫資料情況下,每次洗掉
Redis中的資料- 分布式事務在專案中用什么實作的
- 解釋一下令牌保證介面冪等性(面試官以為令牌是實作了多點登錄功能,用于認證中心)
- 令牌生成的邏輯
- 在秒殺系統中使用信號量的原因
- 訊息佇列在業務中使用場景
- 專案中
JVM調優介紹JVM中的垃圾回收器介紹,了解Jstack不- 計算機網路分層以及對應的協議,為什么分層
- 為什么TCP需要四次揮手
- 看你筆試用了
StringBuffer,談談它和Cache的區別(計算機組成中的Cache概念)- Java學習路線
JVM中的垃圾回收演算法,為什么不同代用不同演算法- 新生代標記的是什么物件,老年代標記的是什么物件
- 學習使用的資料庫版本,學了哪些知識
MySQL5.7在快照和next-key保證下能避免幻讀問題MySQL索引,InnoDB用的是什么索引,為什么B+樹能提高查詢性能- 磁盤讀取的順序啥的(作業系統還是計算機組成的知識?)順序讀的問題
Redis容災備份,持久化的實作- 設計方法保證
Redis宕機時剛要存的資料也能持久化,不搭建集群主從復制MySQL的同步(持久化)如何實作AOF恢復和RDB恢復資料有什么區別,優劣- 鎖的優化,升級,
AQS- 讀寫鎖在
AQS中和其他鎖最大的區別- 反問了解下位元組的考核制度(面試官說位元組基于對伙伴充分的信任,分配任務之后不會限定deadline,考核也有成熟的制度體系)
位元組跳動二面(70分鐘)
- 面試時間約70分鐘
- Spring中為什么默認是單例
- 說說單例和原型各自的優缺點
- 手寫三個執行緒安全的懶漢型單例模式
- 寫的程序中讓解釋了static、鎖、鎖的粒度一些知識
- 讓介紹synchronized和reentrantlock各自適用的場景
- 手寫一個對外提供put、get、remove的hashmap,用陣列和鏈表實作,不需要寫hash演算法
全程除了一開始問Spring中為什么默認單例的問題之外,基本就是一邊寫代碼一邊問問題,不難發現一面考察主要是技術面的寬度,二面主要考察技術的深度,
美團一面(40分鐘)
- 專案介紹,反問了專案中的難點在什么地方(回答了資料庫IO的瓶頸,引入Redis技術,面試官就問資料庫IO的IPS是多少)
- Redis和資料庫并發一致性問題
- Redis加分布式鎖解決快取雪崩的問題時存在的問題
- 如何保證Redis加鎖和解鎖都具有原子性
- 聊資料庫三范式
- 索引、聚簇索引、輔助索引、覆寫索引
- 解釋一下丟失修改、臟讀、不可重復讀、幻讀具體什么并發競爭下發生的問題
- 上述并發一致性如何解決
- 回到Java的問題上,說一下Java的基礎資料型別
- String為什么是不可變的
- 如果對一個String物件頻繁的修改,會有什么問題,如何改進
- 除了轉成StringBuffer、StringBuilder還有其他好辦法嗎
- hashmap執行緒不安全的場景介紹一下
- 如果讓你設計一個執行緒安全的hashmap你會從哪些角度考慮
- 執行緒的生命周期
- 多執行緒還問了一些其他題,有點會議不起來了,想到了再更新補上
- 手撕一個SQL,從一個表中選出所有成績都大于80分的學生的姓名
- 任選一個排序演算法手撕,直接在網頁里寫并要求運行,寫了個快排
第一個問題那因為單機沒做過壓測,面試官有點質疑專案的真實性,追問每次IO的資料量有多大(最后面試官也直接說沒必要刻意說為了解決資料庫IO存在的問題引入Redis,你提了資料庫瓶頸那你得了解具體的瓶頸,不然就是減分項了)
美團二面(50分鐘)
- 詢問了一下意向城市、手頭的offer和崗位投遞情況
- 實習專案的業務了解,在我描述自己做的作業的時候會提問為什么不用另外的做法,然后會和面試官解釋原因,重點介紹自己遇到的一些難點,解決的方法
- 個人專案中某個技術的詢問
反問環節面試官耐心地就部門業務和新人培養制度給我介紹了十多分鐘,真的是很nice了,
有贊一面
耍了點小心機,特意提了下很欣賞有贊提倡的氛圍,面試官問是特意了解過有贊嗎,就順水推舟夸了一波,
- TCP三次握手及各個狀態名稱
- 四次揮手的各個狀態名稱和流程描述
- POST和GET的區別
- POST的body的大小
- Java的類加載器介紹
- 寫過自定義類加載器嗎
- 雙親委派機制
- 執行緒的生命周期,各個狀態的轉換呼叫什么方法
- wait和sleep的區別
- 實作執行緒的四種方式
- 實際使用執行緒池的場景
- 執行緒池的核心引數
- 讓你手寫執行緒池引數需要考慮什么因素
- volatile的作用及實作原理
- ThreadLocal作用、原理、應用場景、存在的記憶體泄漏問題及解決
- Redis持久化方式AOF和RDB的介紹
- Redis的事務
- 索引的存盤結構
- 聚簇索引和非聚簇索引區別、優劣
- 聯合索引、覆寫索引
- 什么時候適合建索引
- 什么時候建立了索引但是沒有走到,針對單列索引(查了下就是索引參與函式計算、轉型、模糊查詢等會索引失效,進行全表掃描)
- 資料庫隔離級別以及分別解決的是什么問題
總結
準備面試的日子壓力很大,每天晚上都會看追兩集劇再睡,也很枯燥,每天單調地重復筆試、面試、準備面試、練習筆試,但是只要有心,生活就有值得開心的地方,希望各位都能有滿意的offer,共勉,此致,
更多JAVA面試題:戳這里免費領取,暗號:CSDN,還有更多大廠面試專題資料和視頻哦!



轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/173030.html
標籤:其他
上一篇:螞蟻集團回應 “ IPO 推遲”;iPhone12系列支持北斗系統;LLVM 11.0.0 發布 | 極客頭條
下一篇:OpenCV:影像特效處理(一)
