字節(jié)跳動(dòng)面試題
歷經(jīng)4面粱甫,“跳進(jìn)”字節(jié)跳動(dòng)
字節(jié)跳動(dòng)一面:
- 自我介紹
- tcp和udp區(qū)別泳叠,應(yīng)用場(chǎng)景
- tcp三次握手,為什么有第三次茶宵?
- 講一下get和post區(qū)別危纫,其他命令
- 講一下進(jìn)程和線程區(qū)別,什么時(shí)候用多線程?怎么保證線程安全种蝶?
- synchronized的使用契耿,是對(duì)什么加鎖?
- 棧和隊(duì)列蛤吓,怎么用棧實(shí)現(xiàn)隊(duì)列宵喂?
- 垃圾回收算法,復(fù)制算法中存活對(duì)象太多怎么辦会傲?
- 可達(dá)性分析锅棕,GC Root可以是哪些對(duì)象?
- hashmap底層實(shí)現(xiàn)淌山,put get過程裸燎,擴(kuò)容,為什么容量為2的倍數(shù)泼疑?
- java基本類型德绿,基本類型間的轉(zhuǎn)換(short+int得到int類型,不能直接把int型賦給short型)
- String類退渗,字符串相加+的底層操作移稳,StringBuilder和StringBuffer
- 算法:給一個(gè)數(shù)組,使數(shù)組奇數(shù)在前半段会油,偶數(shù)在后半段个粱,在原數(shù)組上操作。
字節(jié)跳動(dòng)二面: - 多個(gè)項(xiàng)目的技術(shù)架構(gòu)翻翩,不是業(yè)務(wù)架構(gòu) MySQL都许,Redis,Nginx嫂冻,Kafka這些技術(shù)架構(gòu)
- 項(xiàng)目技術(shù)點(diǎn)胶征,學(xué)到了哪些?也要具體知識(shí)點(diǎn)桨仿。
- MySQL中為什么是最左前綴睛低?
- 有沒有接觸過一些自動(dòng)熔斷工具
- 502可能的原因有哪些?
- 線上問題怎么排查服傍?Full GC頻繁怎么辦暇昂?
- 服務(wù)的QPS,數(shù)據(jù)庫的架構(gòu)和版本伴嗡。
- SpringBoot的優(yōu)缺點(diǎn)分析
- SpringBoot的啟動(dòng)源碼分析
- 服務(wù)的部署方式急波?
- 算法題目:按照之字形分層遍歷二叉樹,要求bug free瘪校,并且構(gòu)造二叉樹進(jìn)行測(cè)試澄暮。
字節(jié)跳動(dòng)三面: - jdk8默認(rèn)的垃圾回收器, 知道哪些垃圾回收器? G1詳細(xì)說一下
- synchronized關(guān)鍵字的底層是什么?
- 線程之間哪些資源是共享的? 什么是獨(dú)享的?
- 堆和棧有什么區(qū)別?
- linux查看資源的命令?怎么樣查看哪些端口被占用了
- linux內(nèi)存中swap是什么? 什么用?
- 用戶態(tài)和內(nèi)核態(tài)的區(qū)別? 為什么要有用戶態(tài)內(nèi)核態(tài)區(qū)別?
- 中斷有哪些類型名段,區(qū)別?
- 死鎖概念泣懊?條件伸辟?
- 算法題:奇數(shù)位遞增偶數(shù)位遞減的數(shù)組,排序
- get馍刮,post區(qū)別信夫?
- get可以緩存?在INTP(?沒聽懂在哪)里是怎么實(shí)現(xiàn)的卡啰?
- 寫sql静稻,group by的查詢?
- mySQL的搜索引擎匈辱?innodb和myISAM的區(qū)別
HRBP面: - 自我介紹
- 為什么在看機(jī)會(huì)呢振湾?在看什么類型的機(jī)會(huì)呢?
- 為什么看頭條的機(jī)會(huì)亡脸?
- 你覺得頭條是一家什么樣的公司押搪?
- 朋友同事如何評(píng)價(jià)你?
- 平時(shí)都有哪些興趣愛好呢浅碾?
- 在原公司最享受的階段是什么時(shí)候大州?為什么
- 你對(duì)我們的業(yè)務(wù)方向了解嗎?
- 你對(duì)我們的業(yè)務(wù)方向和技術(shù)感興趣嗎垂谢?
01 Zookeeper 部分
- CAP定理
- ZAB協(xié)議
- leader選舉算法和流程
02 Redis 部分 - Redis的應(yīng)用場(chǎng)景
- Redis支持的數(shù)據(jù)類型(必考)
- zset跳表的數(shù)據(jù)結(jié)構(gòu)(必考)
- Redis的數(shù)據(jù)過期策略(必考)
- Redis的LRU過期策略的具體實(shí)現(xiàn)
- 如何解決Redis緩存雪崩厦画,緩存穿透問題
- Redis的持久化機(jī)制(必考)
- Redis的管道pipeline
03 Mysql 部分 - 事務(wù)的基本要素
- 事務(wù)隔離級(jí)別
- 如何解決事務(wù)的并發(fā)問題(臟讀,幻讀)埂陆?
- MVCC多版本并發(fā)控制苛白?
- binlog,redolog,undolog都是什么娃豹,起什么作用焚虱?
- InnoDB的行鎖/表鎖?
- myisam和innodb的區(qū)別懂版,什么時(shí)候選擇myisam鹃栽?
- 為什么選擇B+樹作為索引結(jié)構(gòu)?
- 索引B+樹的葉子節(jié)點(diǎn)都可以存哪些東西躯畴?
- 查詢?cè)谑裁磿r(shí)候不走(預(yù)期中的)索引民鼓?
- sql如何優(yōu)化?
- explain是如何解析sql的?
- order by原理
04 JVM 部分 - 運(yùn)行時(shí)數(shù)據(jù)區(qū)域(內(nèi)存模型)
- 垃圾回收機(jī)制
- 垃圾回收算法
- Minor GC和Full GC觸發(fā)條件
- GC中Stop the world
- 各垃圾回收器的特點(diǎn)及區(qū)別
- 雙親委派模型
- JDBC和雙親委派模型關(guān)系
05 Java 基礎(chǔ)部分 - HashMap和ConcurrentHashMap區(qū)別
- ConcurrentHashMap的數(shù)據(jù)結(jié)構(gòu)
- 高并發(fā)HashMap的環(huán)是如何產(chǎn)生的蓬抄?
- volatile作用
- Atomic類如何保證原子性(CAS操作)
- synchronized和Lock的區(qū)別
- 為什么要使用線程池丰嘉?
- 核心線程池ThreadPoolExecutor的參數(shù)
- ThreadPoolExecutor的工作流程
- 如何控制線程池線程的優(yōu)先級(jí)
- 線程之間如何通信
- Boolean占幾個(gè)字節(jié)
- jdk1.8/jdk1.7都分別新增了哪些特性?
- Exception和Error
06 Spring 部分 - Spring的IOC/AOP的實(shí)現(xiàn)
- 動(dòng)態(tài)代理的實(shí)現(xiàn)方式
- Spring如何解決循環(huán)依賴(三級(jí)緩存)
- Spring的后置處理器
- Spring的@Transactional如何實(shí)現(xiàn)的嚷缭?
- Spring的事務(wù)傳播級(jí)別
- BeanFactory和ApplicationContext的聯(lián)系和區(qū)別
07 其他部分 - 高并發(fā)系統(tǒng)的限流如何實(shí)現(xiàn)饮亏?
- 高并發(fā)秒殺系統(tǒng)的設(shè)計(jì)
- 負(fù)載均衡如何設(shè)計(jì)耍贾?