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