前言
項(xiàng)目方面參考意義不大,所有問題均未涉及
筆者技術(shù)水平有限,可能面試難度較低,如果對(duì)您沒有幫助,請(qǐng)見諒
2次HR面就不放了,看到大家的面經(jīng)都沒談到HR面,擔(dān)心寫出來(lái)可能會(huì)承擔(dān)不必要的風(fēng)險(xiǎn)。
看完可關(guān)注: bestsort
感謝 CBU 和 CRO 的所有面試官, 特別是CBU一面的小姐姐, 在我尚未經(jīng)歷幾次面試的時(shí)候給了我特別多后續(xù)準(zhǔn)備和發(fā)展的建議, 也感謝兩位內(nèi)推人的積極跟進(jìn)~
CBU
一面2.20(46min)
1.項(xiàng)目相關(guān)介紹,沒太大參考性就不寫了~
2.String 為什么不可變, 處于什么考慮
3.String s1="abc", 這一語(yǔ)句執(zhí)行后數(shù)據(jù)在Java中是如何存儲(chǔ)的
4.String s1 = "abc", String s2 = "ab"+"c", 創(chuàng)建了幾個(gè)對(duì)象
5.HashMap和ConcurrentHashMap簡(jiǎn)單講一下(聊了hash、數(shù)據(jù)結(jié)構(gòu)、擴(kuò)容、線程安全性、不同版本比較)
6.紅黑樹、B+樹
7.多線程如何實(shí)現(xiàn)對(duì)線程間共享內(nèi)存的保護(hù)
8.Java內(nèi)存模型
9.volitail如何保證可見性
10.了解哪些設(shè)計(jì)模式
11.模板方法和代理模式的比較、適用場(chǎng)景
12.有沒有嘗試過(guò)JVM調(diào)優(yōu)、dump內(nèi)存
二面3.18(28min)
1.多線程的幾種實(shí)現(xiàn)方式介紹一下
2.運(yùn)行時(shí)異常和一般異常的區(qū)別
3.HashMap、ConcurrentHashMap
4.HTTP、HTTPS介紹一下
5.UDP、TCP介紹一下
6.多態(tài)體現(xiàn)在哪些地方
7.堆排序、歸并的原理
8.代理模式,聊了聊JDK代理的源碼
9.項(xiàng)目相關(guān)
10.看過(guò)哪些項(xiàng)目的源碼
11.最近在看什么技術(shù)類的書,收獲。聊了聊書上的redis相關(guān)內(nèi)容
12.一面中回答最不好的問題,現(xiàn)在怎么去解決。
BU筆試
給 n 個(gè)字符串,格式類似 “stringA, stringB”,表示這兩個(gè)字符串之間有某種關(guān)系,關(guān)系是可以傳遞的,最后給 m 個(gè)詢問 “stringA? stringB”,讓判斷 stringA 是否和 stringB 有關(guān)系。也就是說(shuō),如果 a 和 b 有關(guān)系,b 和 c 有關(guān)系的話,那 a 和 c 也是有關(guān)系的。
四面4.2(36min)
1.項(xiàng)目相關(guān)
2.覺得知乎哪個(gè)地方實(shí)現(xiàn)最復(fù)雜
3.知乎的關(guān)注列表在數(shù)據(jù)庫(kù)層面如何實(shí)現(xiàn)
4.上面三個(gè)題30分鐘,后續(xù)就是談人生了
五面4.7(22min)
1.Redis I/O模型、數(shù)據(jù)結(jié)構(gòu)
2.synchronized 和 lock 的比較
3.線程狀態(tài),狀態(tài)之間的切換、生命周期
4.等待和阻塞的區(qū)別
5.TCP如何保證消息的可靠傳輸
6.數(shù)據(jù)庫(kù)的索引機(jī)制。
7.最左匹配,結(jié)合B+樹的實(shí)現(xiàn)和查詢機(jī)制聊了聊
8.緩存雪崩
9.三種限流算法
交叉面4.8(30min)
1.Java內(nèi)存區(qū)域劃分
2.ConcurrentHashmap 擴(kuò)容
3.CAS
4.敏感詞過(guò)濾,時(shí)間、空間復(fù)雜度(字典樹->AC自動(dòng)機(jī))
5.進(jìn)程通信
6.管道和重定向的區(qū)別
7.OSI模型
8.TCP、UDP區(qū)別
9.MySQL查詢優(yōu)化器的優(yōu)化過(guò)程(只講了擇路和成本估算)
后面就是HR面了。 然后掛了。。。寫這篇文章復(fù)盤的時(shí)候發(fā)現(xiàn)問的東西相對(duì)其他面經(jīng)真的都很簡(jiǎn)單, 雖然最后沒能如意,不過(guò)還是感謝CBU的所有面試官,感謝他們犧牲個(gè)人時(shí)間來(lái)面試我這個(gè)蒟蒻。 也感謝各位面試官給出的建議和鼓勵(lì)~比起我面字節(jié)時(shí)的自閉而言真的不要好太多~(不針對(duì)字節(jié),單純就是因?yàn)槲姨薗AQ)
CRO
一面4.17(1h10min)
1.保證雙十一期間交易的一個(gè)正常、順滑進(jìn)行能從哪些方面去考慮
2.常用限流方案
3.支付寶付款的大概設(shè)計(jì)思路
4.tomcat默認(rèn)連接數(shù)
5.tomcat如何打破雙親委派模型
6.類加載器和類加載過(guò)程
7.用什么方法自己實(shí)現(xiàn)一個(gè)ClassLoader
8.遇到過(guò)棧溢出嗎,什么情況下會(huì)遇見,在哪些內(nèi)存區(qū)域
9.什么情況下會(huì)發(fā)生GC
10.如何手動(dòng)觸發(fā)GC
11.GC算法原理
12.快排時(shí)間復(fù)雜度,原理,優(yōu)化
13.線程的狀態(tài)
14.CPU占用過(guò)高如何排除
15.tomcat啟動(dòng)后是通過(guò)什么協(xié)議對(duì)外提供服務(wù)
16SSL握手流程
17.從安全的角度來(lái)看HTTP/HTTPS可能會(huì)存在哪些風(fēng)險(xiǎn)
18.XSS、CSRF是什么,怎么防范
19.Cookie有哪些風(fēng)險(xiǎn)
20.英語(yǔ)怎么樣
21.平常學(xué)哪些課程,說(shuō)了測(cè)試、需求、項(xiàng)目管理、體系結(jié)構(gòu)設(shè)計(jì)
22.有哪些常用的測(cè)試方法
23.自動(dòng)化測(cè)試、CI / CD有沒有了解過(guò)
24.數(shù)據(jù)庫(kù)隔離機(jī)制的實(shí)現(xiàn)方式
二面4.21(45min)
1.拿了那些offer
2.用過(guò)Linux沒有,如何查看線程的情況。如何根據(jù)最近修改時(shí)間逆序查看文件
3.重寫equals為什么要重寫hashcode
4.Hash沖突解決方案
5.將一個(gè)二元組排序, 排序的過(guò)程(不知道為什么突然拋出了個(gè)簡(jiǎn)單問題)
6.根號(hào)5開根(二分/牛頓迭代)
7.斐波那契第n項(xiàng)(迭代/矩陣快速冪)
8.2個(gè)大文件, 比對(duì)相同行(對(duì)每一行摘要,建字典樹. 摘要相同的逐字符比對(duì),聊了聊具體的時(shí)間/空間復(fù)雜度,總共耗時(shí)15min)
9.MySQL 常用engine(這個(gè)問題遇見了好多次... 聊了聊MyISAM和InnoDB的索引結(jié)構(gòu)、表結(jié)構(gòu)和log)
10.反問
三面4.23(1h14min)
p.s : 最自閉的一面,沒有之一 QAQ
1.雪花算法(從項(xiàng)目聊數(shù)據(jù)庫(kù)拆分聊過(guò)來(lái)的), 如何查詢
2.防盜鏈方案
上面兩個(gè)問題加項(xiàng)目的一些問題共計(jì)花了30min, 接下來(lái)的40min全程自閉,就只為問了一個(gè)問題單機(jī)8核心16G內(nèi)存如何排序1T文件。包括以下小問題:
IO 方式
線程個(gè)數(shù)
線程之間如何調(diào)度
每個(gè)線程的任務(wù)
歸并排序的具體流程
第一次歸并后接下來(lái)的流程
多機(jī)大文件排序
我曾天真的以為, 這一類問題說(shuō)一下多路歸并的流程就差不多了,然而遇見面試官詳細(xì)到偽碼級(jí)別的問題直接炸鍋... 好在面試官手下留情,勉強(qiáng)讓我過(guò)了。。。
讀者福利
最后給大家分享:Java面試題總結(jié)+各知識(shí)點(diǎn)學(xué)習(xí)思維導(dǎo)圖
歡迎正在學(xué)習(xí)或者工作中的Java程序員朋友們加入Java架構(gòu)學(xué)習(xí)交流:736398039? ,關(guān)注、轉(zhuǎn)發(fā)、評(píng)論,每天分享java 知識(shí),贈(zèng)送Spring面試專題、Dubbo面試專題、Redis面試專題、Netty面試專題、zookeeper面試專題、Spring cloud面試專題、。。。。。。等等
點(diǎn)關(guān)注,不迷路;持續(xù)更新Java相關(guān)技術(shù)及資訊?。?!
原文作者:bestsort