strcmp可以比较数组么_大家都用过百度云,但你面试过百度云么
作者:黃小斜
百度研發(fā)面經(jīng)
百度智能云
軟件研發(fā)工程師
百度智能云研發(fā)崗
好像是做控制臺(tái)方面的組
一面:
1自我介紹,項(xiàng)目
2 static關(guān)鍵字有什么用,static修飾不同東西時(shí)有什么作用,內(nèi)部類用static修飾和不用static修飾有何區(qū)別。
3 hashmap,hashtable,concurrenthashmap區(qū)別和場(chǎng)景
4 volatile關(guān)鍵字有什么用
5 jvm分區(qū)講下,作用講下,gc算法講一下,gc是否會(huì)有停頓或者延遲。
6 講一下OOM和內(nèi)存泄漏的例子,為什么有GC還會(huì)出現(xiàn)內(nèi)存泄漏和內(nèi)存溢出呢
7 線程和進(jìn)程的區(qū)別,通信方式的區(qū)別。
8 悲觀鎖和樂觀鎖,說一下Java和數(shù)據(jù)庫分別怎么實(shí)現(xiàn)的。
9 數(shù)據(jù)庫索引說一下,除了B+樹索引還有什么索引。
10倒排索引說一下,如果關(guān)鍵字很多,怎么優(yōu)化。使用前綴樹和hashmap優(yōu)化。
11 前綴樹的結(jié)構(gòu)和原理說一下。
12 瀏覽器發(fā)起http請(qǐng)求過程,越詳細(xì)越好。
13 緩存和數(shù)據(jù)庫的一致性怎么保證
14 網(wǎng)上寫代碼,寫了一個(gè)快排
15 沒了。
二面:
1 自我介紹
2 項(xiàng)目中難點(diǎn),用到的技術(shù)
3 多線程,說一下線程的狀態(tài)和狀態(tài)轉(zhuǎn)換,詳細(xì)問
4 多線程的sleep方法和wait方法為什么來源不同,一個(gè)是object方法,一個(gè)是Thread的方法。
5 為什么object的wait和notify必須在同步塊中使用,不在同步塊使用會(huì)報(bào)錯(cuò)么,編譯報(bào)錯(cuò)還是運(yùn)行報(bào)錯(cuò)。
6 jvm講一下gc吧,兩個(gè)對(duì)象的引用循環(huán)依賴,會(huì)不會(huì)被垃圾回收,什么情況下會(huì)什么情況下不會(huì)呢
7 GC root是哪些位置呢,我說記不起來,他說你不用記,其實(shí)就是運(yùn)行時(shí)的一些對(duì)象和變量,比如局部變量表,方法區(qū)的元數(shù)據(jù)比如fianl,static變量,本地方法棧執(zhí)行的方法。
8 數(shù)據(jù)庫了解哪個(gè)。Redis說一下為什么是單線程的,不會(huì)很慢么,有什么好處。
9 Redis的IO請(qǐng)求模型,是不是IO多路復(fù)用呢。
10 Spring的interceptor和filter有什么區(qū)別。我說沒區(qū)別,錯(cuò)!
11 網(wǎng)絡(luò)這塊,說一下dns請(qǐng)求的過程吧,dns是否會(huì)訪問緩存呢,緩存在本地和瀏覽器,還有dns服務(wù)器上是不是都有。
12 get和post的區(qū)別講一下,底層的實(shí)現(xiàn)有區(qū)別么,都是基于TCP,那么如何限制get的url長度,在哪一層限制的。
13 數(shù)據(jù)結(jié)構(gòu)熟么,講一下樹和圖吧,樹的層次遍歷使用什么結(jié)構(gòu),相應(yīng)的圖的遍歷呢。講講最小生成算法,還有迪杰斯特拉。
14 數(shù)組,找到唯一一個(gè)出現(xiàn)兩次的數(shù)。
剛開始聽錯(cuò),說了位運(yùn)算。
a 然后講了數(shù)組計(jì)數(shù),hash計(jì)數(shù),排序比較。
b 然后面試官說條件給的是1到N-1的N個(gè)數(shù)字,重新想一下。
c 說了根據(jù)數(shù)組位置和數(shù)字比較進(jìn)行判斷。面試官最后說可以用相加求差值來判斷。
15 一個(gè)10000以下的數(shù)組,內(nèi)存夠。里面只有1,2,3。排下序。
a 普通排序O(nlogn)
b 荷蘭旗問題,雙指針解決。O(N)
c 統(tǒng)計(jì)數(shù)量,重放數(shù)組O(2N)
d 另外搞一個(gè)數(shù)組,把1放頭,3放尾,也是雙指針。O(N)。空間復(fù)雜度O(N)
16 沒了。
全程50分鐘
三面HR
巴拉巴拉巴拉。基本上問題都大同小異。
百度智能云 數(shù)據(jù)庫部門
一面:
1 數(shù)據(jù)庫的事務(wù),四個(gè)性質(zhì)說一下,分別有什么用,怎么實(shí)現(xiàn)的。一致性沒講好。
2 講到了redo和undo日志,問我分別有什么用,說redo日志說錯(cuò)了。
3 數(shù)據(jù)庫的隔離性如何保證,使用悲觀鎖和樂觀鎖有何區(qū)別。MVCC的設(shè)計(jì)目的是什么,怎么使用版本號(hào)判斷數(shù)據(jù)的可見性。
4 問了一道算法,1到N的所有數(shù)字,按照字典序打印,怎么做。
說了用數(shù)組排序,問復(fù)雜度,扯了半天。
怎么優(yōu)化,按照數(shù)字特征順序打印,問這個(gè)東西和什么結(jié)構(gòu)比較像。提示是樹,然后說了個(gè)多叉樹,問我怎么實(shí)現(xiàn),最后其實(shí)使用dfs遍歷樹的每個(gè)分支。
5 多線程并發(fā)的同步實(shí)現(xiàn),有兩個(gè)方法,每個(gè)方法里有a部分代碼和b部分代碼,我要讓兩個(gè)線程分別執(zhí)行兩個(gè)方法,并且讓他們運(yùn)行完a部分代碼再一起向下執(zhí)行,如何實(shí)現(xiàn)。
6 我說了用cyclicbarrier實(shí)現(xiàn),互相等待await。
然后他問我怎么用信號(hào)量實(shí)現(xiàn),并且提示可以再用一個(gè)線程。
然后我說了個(gè)方案。
7 問了項(xiàng)目
8 如何把優(yōu)化遞歸的代碼
改成尾遞歸或者循環(huán)。
面試官說不是,引導(dǎo)說用棧實(shí)現(xiàn)遞歸。
問我棧中需要壓入哪些數(shù)據(jù)。他說應(yīng)該是方法參數(shù),返回值,以及返回地址。
二面:
1 自我介紹,項(xiàng)目 10分鐘過去
2 服務(wù)器如何負(fù)載均衡,有哪些算法,哪個(gè)比較好,一致性哈希原理,怎么避免DDOS攻擊請(qǐng)求打到少數(shù)機(jī)器。
3 TCP連接中的三次握手和四次揮手,四次揮手的最后一個(gè)ack的作用是什么,為什么要time wait,為什么是2msl。
4 數(shù)據(jù)庫的備份和恢復(fù)怎么實(shí)現(xiàn)的,主從復(fù)制怎么做的,什么時(shí)候會(huì)出現(xiàn)數(shù)據(jù)不一致,如何解決。
5 今天面試太多了,記不清了。。。
6 開源的技術(shù)看過用過么,分布式存儲(chǔ)的了解么。
7 想做什么方向的開發(fā)。
8 Linux查看cpu占用率高的進(jìn)程
9 查看占用某端口的進(jìn)程和某進(jìn)程監(jiān)聽的端口
10 如何查詢?nèi)罩疚募械乃衖p,正則表達(dá)式
三面(8.3號(hào)更新):
數(shù)據(jù)庫部門真的很嚴(yán)格,問題都挺難的。
1 講一下項(xiàng)目
2 平時(shí)了解什么操作系統(tǒng)
Linux,說一下Linux排查問題常用的命令,ps,top,netstat,free,du等等
3 Linux的內(nèi)存管理算法,問了一下是不是頁面置換算法,他說是。
說了lru和fifo,問我lru有什么缺點(diǎn),沒答上來。
4 Linux的文件系統(tǒng)了解么,講了一下inode節(jié)點(diǎn),文件和目錄的原理。他問我了不了解具體的文件系統(tǒng)ext2,ext3,答不會(huì)。。
5 進(jìn)程通信方式有哪些,問我分別怎么使用,管道有哪些類型,各有什么優(yōu)缺點(diǎn)。
6 問我服務(wù)器硬件了解么。。一臉懵逼,問了我懂不懂Raid,瞎扯了幾句就說不懂了。
7 shell了解么,沒怎么寫過。
8 聽說你會(huì)Java,說一下JVM內(nèi)存模型把,有哪些區(qū),分別干什么的
9 說一下gc算法,分代回收說下。
10 設(shè)計(jì)模式了解么,說了7種,問我分別怎么用,實(shí)際應(yīng)用過嗎,稍微扯了一下。
11 MySQL的引擎講一下,有什么區(qū)別,使用場(chǎng)景呢。
12 查詢最新的10條數(shù)據(jù),想了好一會(huì),order by id desc limit 10
13 MySQL的union all和union有什么區(qū)別,我瞎掰了一下,應(yīng)該不對(duì)。
14 MySQL有哪幾種join方式,底層原理是什么,答不會(huì),只知道表現(xiàn)形式。
15 Redis了解哪些啊,數(shù)據(jù)結(jié)構(gòu)和基本原理把。
問我Redis怎么做集群,答了主從哨兵和cluster。
Redis的持久化怎么做,aof和rdb,有什么區(qū)別,有什么優(yōu)缺點(diǎn)。
16 Redis使用哨兵部署會(huì)有什么問題,我說需要擴(kuò)容的話還是得集群部署。
17 分布式系統(tǒng)了解么,說一下Hadoop了解啥。
我說基本組件稍微了解過,簡(jiǎn)單搭過環(huán)境。
18 MapReduce的combiner干啥的,我說是合并結(jié)果的,問我啥時(shí)候會(huì)用到,答不知道。
19 Hadoop分發(fā)任務(wù)時(shí),有個(gè)job失敗了,hadoop會(huì)怎么處理,我答不知道,猜是會(huì)繼續(xù)執(zhí)行。。
20 hadoop分發(fā)任務(wù),如果有一個(gè)節(jié)點(diǎn)特別慢拉慢了整體速度怎么辦。我猜測(cè)是通過yarn分配相同的資源給每個(gè)任務(wù),可以避免這種情況,他好像不太滿意。
21 hadoop答得很爛。問了我兩個(gè)10g文件比較,2g內(nèi)存,重復(fù)率很高,篩選出不同的內(nèi)容。我說拆成十份hash,每份兩兩比較hash的結(jié)果集,貌似他說OK。
22 排序算法了解哪些,巴拉巴拉。
23 用隊(duì)列計(jì)算一個(gè)樹的高度,我說用層次遍歷記錄節(jié)點(diǎn)高度。
24 一個(gè)黑名單集合,數(shù)據(jù)量很大,快速查詢一個(gè)值是否在集合里,怎么設(shè)計(jì),我說布隆過濾器。
25 還是上一題,說這個(gè)黑名單可能需要?jiǎng)討B(tài)地增刪改,如何設(shè)計(jì)才能避免訪問響應(yīng)太慢。我沒思路,瞎扯了一下加硬件,用內(nèi)存存,都被駁回了。然后他說算了。
26 上一題的黑名單做成分布式,怎么做。說了分片的方案,根據(jù)地址的hash值確定分片所在節(jié)點(diǎn)。
27 分布式數(shù)據(jù)庫了解么,我不太明白他問的是啥,說不了解,感覺應(yīng)該是問數(shù)據(jù)庫的分布式方案。
28 有什么想問的,據(jù)他所說還有2-3輪面試,驚了。
全程50分鐘,可以說是迄今為止難度最大的一個(gè)?
總結(jié)
以上是生活随笔為你收集整理的strcmp可以比较数组么_大家都用过百度云,但你面试过百度云么的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 炼数成金数据分析课程---16、机器学习
- 下一篇: centos 安装trace_前期的准备