2021年底面試記錄
目錄:
前言
騰訊QQ音樂(三面掛)
一面
二面
三面
字節(jié)飛書(二面掛)
一面
二面
深信服
一面
二面
商湯(二面掛)
一面
二面
蝦皮
一面
二面
順豐數(shù)科(一面掛)
字節(jié)國際化電商
一面:
二面:
三面:
總結
前言
今天這篇用來記錄一下這兩三個月的面試歷程,包括普通八股文、算法
有些是面試完幾天后才記錄的,只想起了個大概,詳細的記不太清楚了
只是題目,答案的話直接網(wǎng)上搜索就行了
騰訊QQ音樂(三面掛)
一面
一面是算法面,主要有三道算法題,基本都是簡單題型
(1)字符串查找
給定一個abdcdd字符串和一個abd字符串,在abdcdd字符串中找出abd字符串出現(xiàn)的第一個位置(從0開始),如果不存在,則返回-1.
例如:
輸入:abdcdd="hello",abd="ll"
輸出:2
(2)atoi函數(shù)
實現(xiàn)atoi函數(shù),使其能將字符串轉換成一個 32 位有符號整數(shù)(類似 C/C++ 中的 atoi 函數(shù))。
例如:
輸入:+3838
輸出:3838
輸入:-99kdj98
輸出:-99
輸入:dkdkdkdk
輸出:0
leetcode地址:https://leetcode-cn.com/problems/string-to-integer-atoi/
(3)判斷字符串是否有效
給定一個只包括的'(',')','{','}','[',']'字符串,判斷字符里是否有效。
例如:
輸入:"()"
輸出:true
輸入:"(){}[]"
輸出:true
輸入:"(]"
輸出:false
二面
1、介紹下java gc
2、介紹下JUC,線程安全方面的
3、mysql事務相關、鎖、索引、事務如何實現(xiàn)
4、redis集群模式、數(shù)據(jù)結構
5、kafka副本是怎么樣的、kafka為什么快?
5、select、poll、epoll是怎么樣的
6、TCP三次握手、四次揮手、為什么需要三次握手,四次揮手、滑動窗口
7、粘包是什么情況,如何解決?
8、介紹下項目:項目架構、多少人維護、做了多久、用戶量、我在其中擔任什么角色,做了什么功能
三面
三面有兩道算法題和八股文
算法題:
(1)去除字符串中的空格
(2)獲取字符串的所有子序列
leetcode類似題型:https://leetcode-cn.com/problems/subsets/
這道題在面試中沒做出來哈哈哈
八股文:
1、說一下用到的存儲系統(tǒng)
2、說一下redis的key是怎么進行hash的?一致性hash算法?Hash的負載因子是多少
3、TCP三次握手中的backlog是怎么樣的
4、kafka的源碼有沒有看過、redis源碼有沒看過(問到這里的時候基本已經(jīng)可以肯定掛掉了)
5、linux如何查看磁盤讀寫性能等
字節(jié)飛書(二面掛)
一面
算法題:
(1)單鏈表部分反轉
(2)旋轉數(shù)組中查找元素
八股文:
1、JVM內存結構,垃圾收集器,GC等
2、多路復用,redis使用了Reactor模式,它為什么快?
3、spring的依賴注入解決了什么問題?
4、說一下java鎖機制?對象鎖?公平鎖?非公平鎖?可重入鎖?不可重入鎖?自旋鎖?
二面
算法題:
(1)二叉樹的最長路徑
八股文:
1、kafka partition底層存儲是怎么樣的
2、kafka如何確保消息一次消費且只被消費一次
3、kafka如何確保生產(chǎn)者消息發(fā)送成功
4、kafka 的消費者在消費成功、失敗該怎么處理
5、mysql的innodb底層存儲是怎么樣的
6、mysql跟hbase的存儲結構有什么不一樣
7、內存池如何設計
8、進程間通信,最快的方式是什么,內存在內核還是用戶態(tài)操作
9、TCP/IP如何解決粘包問題
深信服
記錄的是大概,詳細的題目忘了
一面
1、JVM
2、Kafka
(1)kafka如何確保消息的exactly onece semantic–EOS,從生產(chǎn)者、隊列、消費者端分別回答
(2)副本之間如何同步
(3)kafka為什么這么快
(4)一臺服務器上有太多partition會出現(xiàn)什么問題
3、spring cloud
4、mysql
編程題:多個線程打印一個列表
二面
(1)項目
(2)spring cloud之間如何互相調用
(3)mysql
(4)遇到的難題(這種題最難答了)
編程題:刪除相鄰重復字符,例如 abccdee ?--> abcde
商湯(二面掛)
一面
1、創(chuàng)建線程方式
2、線程池參數(shù)
3、線程池任務怎么執(zhí)行
4、怎么停止線程池的某個任務
5、泛型是怎么樣的
6、泛型有哪幾種,運行期能獲取泛型參數(shù)類型嗎,?號怎么用
7、什么時候進行full gc
8、頻繁full gc如何排查
9、內存溢出怎么排查
10、mysql的隔離級別、以及會導致什么問題
11、幻讀如何解決
12、mysql中要手動加鎖還是自動加鎖,一條sql是怎么加鎖的
13、怎么優(yōu)化慢查詢
14、mvcc是什么
15、mysql索引類型
16、mysql存儲引擎以及區(qū)別
17、spring ioc、aop等信息,aop底層實現(xiàn)有什么
18、spring cloud全家桶
19、有沒看過spring 全家桶源代碼
20、spring eureka的流程
21、linux一堆命令,比如查看某個進程pid、只查看PID用什么、查看磁盤使用量、查看線程所用cpu:top -H
22、restful是什么
23、如何設計一個接口:圖片和其它信息一起上傳?然后扯一堆問題
24、短信接口如何實現(xiàn),需要考慮什么問題
25、如何方式惡意刷接口行為?人機校驗接口如何實現(xiàn)?
二面
1、項目
2、springcloud
3、netty粘包拆包怎么解決,netty中channel有幾種
蝦皮
一面
詳細的沒記錄,大概就是這幾個
1、JVM
2、mysql
3、kafka
4、redis
5、spring cloud
6、算法題:合并兩個有序鏈表
二面
1、討論項目
2、遇到的難點,是怎么解決的
順豐數(shù)科(一面掛)
1、tcp粘包是如何導致的?tcp是長連接嗎?tcp和http的keepalive有什么區(qū)別
2、udp會有粘包嗎
3、netty的粘包如何處理
4、io多路復用是怎么樣的
5、select、poll、epoll是怎么樣的
6、mysql索引是如何加快搜索的
7、慢sql如何進行優(yōu)化
8、limit分頁如何進行優(yōu)化
9、spring transaction會失效嗎?
10、數(shù)據(jù)庫和緩存不一致如何處理?
11、性能優(yōu)化操作時如何利用arthas進行操作的?
12、spring cloud有哪些組件
13、為什么會有Feign組件,跟Ribbon需要自構建http請求如何區(qū)分
14、微服務之間怎么進行調用,pod之間如何在網(wǎng)絡層相互調用
15、spring循環(huán)依賴如何處理?構造注入的循環(huán)依賴處理?
16、spring 攔截器、過濾器
17、如何在生產(chǎn)中查看日志,除了elk或其它日志平臺,大文本日志如何查看相應時間段的日志?
18、ES如何進行文檔搜索、底層搜索流程是怎么樣的
字節(jié)國際化電商
一面:
1、討論項目
2、緩存系統(tǒng)該如何設計
3、kafka的副本之間是如何同步的
4、mysql的索引是怎么樣的,為什么可以加快搜索
5、mysql底層存儲是怎么樣的,如何加載數(shù)據(jù)
6、數(shù)據(jù)庫事務是如何是實現(xiàn)的
7、算法題:刪除單鏈表倒數(shù)第n個節(jié)點
二面:
1、linux進程、線程是什么樣的,協(xié)程是怎么樣的
2、進程線程模型,1:n和1:1有什么區(qū)別
2、tcp如何確保消息順序、消息不丟失
3、TCP發(fā)送端沒接收到接收端返回的ack應該怎么處理
4、傳輸協(xié)議有了解過嗎?像protobuf等,該怎么去設計消息體結構,要是文本類消息該如何設計消息體結構
3、https如何進行單方面認證,比如客戶端認證服務端
4、線程之間如何進行通信
5、mysql的原子性時怎么樣的,如何保證原子性
6、臟讀是怎么造成的
7、編程題:余額表添加扣減操作,同時添加流水表,如何敲代碼,代碼演示
如何在代碼層面不加鎖的情況下進行操作?只能利用mysql自帶的鎖
8、算法題:奇偶鏈表排序
給定一個單鏈表,鏈表中所有奇數(shù)位置的結點值是單調遞減的,所有偶數(shù)位置的結點值是單調遞增的。請就地(也就是說空間復雜度要求為O(1))將此鏈表改為順序排序。比如單鏈表:9->4->6->7->5->8->3,奇數(shù)位置結點值依次為 9、6、5、3逆序排列,偶數(shù)位置 4、7、8為順序排列。
三面:
1、討論項目
2、系統(tǒng)高可用如何保障?服務降級、限流有沒有了解過
3、怎么從長鏈接生成短鏈接
4、算法題:從字符串中找出最長不重復子字符串長度
比如 ?abcdabcddd,那么最長不重復子串就是 abcd,也就是4
總結
面試靠知識儲備的同時,運氣也很重要。
運氣體現(xiàn)在面試官方面和算法題方面。
算法題方面看運氣能不能遇到的就是曾經(jīng)刷過的題
八股文方面主要是在記住的同時要理解,很多面試官會抓住一個點深入往下問的。
面試騰訊QQ音樂的時候,面試官給了我一個建議,我個人覺得很實用,算是一個面試加分點吧
就是回答問題的時候不要自顧自的說一大段,很多面試官可能沒時間或者沒耐心聽,最好是先回答個大概,然后跟面試官交流,問下是否需要詳細展開。
最后,祝想跳槽的同學都能去想去的廠做CRUD boy。
