2020年,莫名的感受本身度過了最艱難而又漫長的一年!炒魷魚,跳槽不順,就像屢見不鮮同樣。2020也是迄今爲止我投簡歷最多的一年了,每天面試每天掛,要多糟心有多糟心…不過我始終堅信,機會永遠是留給堅持不懈與努力的人的,因此很慶幸,我抓住了2020年的年尾吧,上岸了騰訊!mysql
回顧這一年,個人付出終歸是沒有白費的!很快,今天又是2021年02月19號了,激烈的金三銀四已經沒有多少日子就有上場了!因此今天,我挑選了「美團+字節+騰訊」等三家的一二三面問題,在此篇文章裏作一個分享,但願看到的朋友能夠作一個面試參考,並可自行測挑戰一下你能走到哪一面,期待你的表現~【點擊這裏,暗號博客園】獲取三個大廠的面試題答案!
nginx
注:面試以前我曾背過面試1000題(詳情請看文末),我的記憶力還行,整個背下來感受仍是挺不錯的,畢竟你們都深知」面試造火箭,工做擰螺絲「程序員
第一家是美團
美團的話,三面下來,設計的內容知識也是挺廣的吧,有MySQL、Redis、Kafka、線程、算法、+、volatile、線程、併發、設計模式等等…面試
image.png
一面問題:MySQL+Redis+Kafka+線程+算法
mysql知道哪些存儲引擎,它們的區別redis
mysql索引在什麼狀況下會失效算法
mysql在項目中的優化場景,慢查詢解決等spring
mysql有什麼索引,索引模型是什麼sql
B-樹與B+樹的區別?爲何不用紅黑樹數據庫
mysql主從同步怎麼作設計模式
樂觀鎖與悲觀鎖的區別?
binlog日誌
redis 持久化有哪幾種方式,怎麼選?
redis 主從同步是怎樣的過程?
redis 的 zset 怎麼實現的?
redis key 的過時策略
hashmap 是怎樣實現的?爲何要用紅黑樹,而不用平衡二叉樹?爲何在1.8中鏈表大於8時會轉紅黑樹?HashMap爲何線程不安全的?
如何實現線程安全的hashmap?
select 和 epoll的區別
http與https的區別,加密怎麼加的?
raft算法詳細講解
Kafka 選主怎麼作的?
kafka如何保證生產與消費都是同步的?
kafka 怎麼保證不丟消息的
redis如何保證高可用
算法:剪繩子(貪心或遞歸解決)
算法:給前序和中序遍歷,重建二叉樹
二面問題:volatile+線程+併發+算法+設計模式
自我介紹
講講項目(項目沒啥亮點,直接問基礎)
volatile做用?底層實現?禁止重排序的場景?單例模式中volatile的做用?
如何構造線程池,它的參數,飽和策略?
公平鎖和非公平鎖區別?爲何公平鎖效率低?
線程都有哪些狀態?
線程、進程、協程的區別?
同步隊列器AQS思想,以及基於AQS實現的lock,。
併發工具類CountDownLatch、CyclicBarrier、Semaphore介紹
Execuors類實現的幾種線程池類型,最後如何返回?
手寫單例模式
手寫消費者生產者模式
算法:反轉單鏈表
算法:給定一個只包含 ‘(’ 和 ‘)’ 的字符串,找出最長的包含有效括號的子串的長度。
三面
這一面,沒問啥東西,主要聊人生,和將來3年的規劃。。。。。。
第二家是字節跳動
image.png
一面問題:算法+數據庫+事務+網絡
自我介紹
項目介紹(沒亮點,仍是問基礎)
堆排序的原理及時間複雜度,是否穩定,最壞及最壞場景。
Object類都有哪些方法?
DNS解析的過程/瀏覽器輸入一個url,敲下回車後網絡的全過程
HTTP和HTTPS的區別
UDP怎麼實現可靠傳輸
介紹下https,是如何加密的,加密算法
數據庫索引的優缺點,以及何時數據庫索引失效
事務的隔離級別?
數據庫的髒讀,不可重複讀,幻讀
算法:接雨水:給定 n 個非負整數表示每一個寬度爲 1 的柱子的高度圖,計算按此排列的柱子,下雨以後能接多少雨水。
算法:N皇后
二面問題:Kafka+redis+算法
Kafka的特性?
Kafka中的分區器、序列化器、攔截器是否瞭解?它們之間的處理順序是什麼?
消費者重平衡(高可用性、伸縮性)
哪些情景下會形成消息漏消費?
如何保證消息不被重複消費(冪等性)
KafkaConsumer是非線程安全的,那麼怎麼樣實現多線程消費?
Kafka生產者客戶端中使用了幾個線程來處理?分別是什麼?
消費者與生產者的工做流程:
topic的分區數可不能夠增長?
算法:二叉樹中的最大路徑和
算法:給定單向鏈表的頭指針和一個要刪除的節點的值,定義一個函數刪除該節點。
三面問題:Redis+Spring+Dubbo+算法
redis的Zset怎麼實現的?
sentinel和cluster區別和各自適用場景
redis cluster集羣同步過程
redis單線程爲何快?
mybatis一級緩存和二級緩存
spring如何解決循環依賴?
spring AOP的原理。
spring的生命週期。
Dubbo服務暴露和引用過程,負載均衡策略,容錯機制在哪裏實現的源碼
項目中遇到了哪些問題。(抱歉,個人工做就是增刪改查,沒接觸過相關問題)
算法:二叉樹的鏡像
算法:從上到下打印二叉樹
最後一家,瞄一下騰訊
騰訊這三面下來問的也很多,自求多福吧。
image.png
一面問題:高併發+微服務+算法
如何設計一個秒殺系統?
一天爬一千萬條文章,怎麼作設計?怎麼並行協調?100 臺服務器怎麼儘量負載均衡?
有用太短域名服務嗎,能說一下嗎?
微服務的特色,如何實現服務發現和負載均衡
如何排查線上問題?(背過,沒排過)
貝葉斯的機率學原理
負載均衡的加權輪詢算法怎麼實現
若是用戶量大幅度上漲,如何優化?
paxos算法(這個算法太難,學的時候就沒太理解)
平時都看什麼博客,最近看什麼書了
二面問題:Redis+分佈式+算法
自我介紹
項目介紹
redis的5種類型,及其實現原理
如何使用redis的Zset實現延時隊列?
redis如何實現高可用?
redis緩存穿透、緩存擊穿、緩存雪崩
布隆過濾器的實現
如何保證mysql與redis的雙寫一致性?
負載均衡算法有哪些?
服務發現是怎麼實現的?
熔斷是怎麼實現的?
算法:連續子數組的最大和
講講分佈式CAP和BASE?
什麼是強一致性?
分佈式事務的解決方案?
TCC(兩階段型、補償型)
id生成器如何實現?
如何判斷一個圖是否有環?
一致性Hash算法,及其應用
揹包問題
三面問題:Redis+分佈式+MySQL+算法
自我介紹
項目介紹
redis的zSet如何實現?
redis持久化機制。
redis的Hash類型講解,漸進式rehash。
HashMap原理,一個put操做,都有什麼流程?
nginx有本身配置過嗎(這個是我惟一手動操做過的,這個不是背的)
nginx的使用場景。
什麼是分佈式,什麼是集羣,區別是什麼?
在基於dubbo的分佈式環境中,通常將超時timeout設置在provider仍是consumer?
dubbo中負載均衡的策略有哪些?
接口的異步調用?如何設置?運行效果?
談談基於dubbo的系統中consumer集羣的解決方案?
mysql是集羣仍是單節點?最大鏈接數,最大的表中數據量大約是多少?
mysql主從複製主要有哪幾種模式?
mysql索引,B+樹,爲何不用紅黑樹?
數據庫垂直與水平拆分怎麼作。
分佈式session設置
IO、BIO、NIO,阻塞與非阻塞的區別?
分佈式接口的冪等性設計(不能重複扣付款)
算法:二叉搜索數與雙向鏈表(這個懵了)
算法:最長不含重複字符的子字符串
算法:手寫快速排序、插入排序、冒泡排序,並分析時間複雜度和空間複雜度,它們的穩定性
結局:總結+分享
看完美團、字節、騰訊這三家的一二三面試問題,是否是感受問的特別多,可能我們真的又得開啓面試造火箭、工做擰螺絲的模式去準備下一次的面試了。
開篇有說起我但是足足背下了Java互聯網工程師面試1000題,多少仍是有點用的呢,換湯不換藥,無論面試官怎麼問你,抓住本質便可!能讀到此處的都是真愛,因此福利也爲你準備,這份1000題免費送你!【點擊這裏,暗號博客園!~】,免費獲取~
Java互聯網工程師面試1000題
並且從上面三家來看,算法與數據結構是必備不可少的呀,所以我建議你們能夠去刷刷這本左程雲大佬著做的 《程序員代碼面試指南 IT名企算法與數據結構題目最優解》,裏面近200道真實出現過的經典代碼面試題。
更多的Java面試學習筆記以下,關於面試這一塊,我額外細分出Java基礎-中級-高級開發的面試+解析,以及調優筆記等等等。。。
以上所說起的所有Java面試學習的PDF及筆記,如若皆是你所須要的,那麼均可發送給你!