字節(jié)跳動(dòng)
截止到11-20號(hào)每聪,字節(jié)跳動(dòng)一共面了七輪(掛->撈->掛,一般來(lái)說(shuō)技術(shù)在3-5面)矗漾,現(xiàn)在還在流程中。
字節(jié)跳動(dòng)最大的特點(diǎn)就是每一輪最后都有筆試題薄料。很考驗(yàn)選手心態(tài)敞贡,很多上周的穿山甲三面就是因?yàn)楣P試影響了心態(tài)導(dǎo)致后面連環(huán)爆炸。
字節(jié)目前大部分均為GO都办,因此Java問(wèn)的較少嫡锌,這是和阿里最大的區(qū)別
技術(shù)類問(wèn)題
緩存失效的一瞬間如何防止大量請(qǐng)求打垮應(yīng)用?
解法1:守護(hù)線程為緩存續(xù)期
解法2:二級(jí)緩存錯(cuò)開過(guò)期時(shí)間
解法3:為數(shù)據(jù)庫(kù)訪問(wèn)做令牌琳钉,拿到令牌的才可訪問(wèn)數(shù)據(jù)庫(kù)Redis緩存淘汰策略
對(duì)這塊不太熟悉势木,但是粗略想來(lái)和操作系統(tǒng)里的頁(yè)面置換算法應(yīng)該異曲同工
- 最優(yōu)頁(yè)面算法。根據(jù)頁(yè)面的使用頻率來(lái)進(jìn)行置換歌懒,但并無(wú)可行性啦桌。因?yàn)椴僮飨到y(tǒng)無(wú)法判斷頁(yè)面的使用頻率。
- NRU。 分為R位和M位甫男,啟動(dòng)時(shí)均為0且改。操作系統(tǒng)會(huì)定時(shí)將R位置零,區(qū)分近期使用的頁(yè)面板驳。0: R=W=0, 1: R=0 W=1, 2: R=1 W=0, 3 R=W=1又跛。算法會(huì)隨機(jī)從編號(hào)最小的非空頁(yè)挑選一頁(yè)淘汰。FIFO若治。最早進(jìn)入的頁(yè)放在隊(duì)頭慨蓝,缺頁(yè)中斷時(shí),移除隊(duì)頭端幼,加入隊(duì)尾礼烈。
- 二次機(jī)會(huì)∑排埽基于FIFO此熬,不過(guò)在移除時(shí),如R位為1滑进,置零犀忱,加入隊(duì)尾,繼續(xù)查找扶关。
- 時(shí)鐘算法峡碉。二次算法的循環(huán)鏈表形式。
- LRU驮审。淘汰近期未被使用的頁(yè)面鲫寄。要求硬件有一個(gè)64位計(jì)數(shù)器C,在每條指令執(zhí)行后自增疯淫。每個(gè)頁(yè)面也需要有能容納該計(jì)數(shù)器值的域地来。
- NFU。軟件模擬LRU熙掺。每次時(shí)鐘中斷時(shí)未斑,計(jì)數(shù)器加上相應(yīng)頁(yè)面的R值”壹ǎ可以大致紀(jì)錄頁(yè)面的訪問(wèn)頻率蜡秽,被稱為NFU(not frequently used)。
- 老化算法缆镣。對(duì)NFU進(jìn)行小小修改即可模擬LRU芽突,在每個(gè)時(shí)鐘周期對(duì)計(jì)數(shù)器進(jìn)行右移操作,推入R值董瞻。在缺頁(yè)中斷時(shí)寞蚌,移除值最小的頁(yè)面田巴。
- 工作集算法。一個(gè)進(jìn)程在過(guò)去n秒中訪問(wèn)到的所有頁(yè)稱為一個(gè)工作集挟秤。(前提:人們發(fā)現(xiàn)進(jìn)程并不會(huì)訪問(wèn)所有的頁(yè)壹哺。)時(shí)鐘中斷會(huì)定期清空R位。每個(gè)頁(yè)在使用時(shí)會(huì)紀(jì)錄當(dāng)前時(shí)間艘刚,但掃描時(shí)管宵,算法根據(jù)R值與時(shí)間差來(lái)判斷是否需要置換。最壞的情況下攀甚,無(wú)可置換頁(yè)面啄糙,則隨機(jī)選擇,一般選擇“干凈”的頁(yè)面云稚,即W=0。
- 工作集時(shí)鐘沈堡。如R=1静陈,則R=0,檢查下一頁(yè)诞丽。如R=0且已過(guò)時(shí)鲸拥,再看W值,如W=1僧免,為防止調(diào)度寫磁盤引起的中斷刑赶,則繼續(xù)向后,直到找到一個(gè)干凈頁(yè)面懂衩。如W=0撞叨,說(shuō)明頁(yè)未修改,在磁盤中有有效副本浊洞,則申請(qǐng)頁(yè)框牵敷,將新頁(yè)面放入其中。最大移動(dòng)N次法希,即一圈枷餐。會(huì)出現(xiàn)兩種情況,至少調(diào)用一次寫操作苫亦,那么就有干凈頁(yè)面存在毛肋,否則隨機(jī)找一個(gè)干凈頁(yè)面置換,如無(wú)干凈頁(yè)面屋剑,將當(dāng)前指向的頁(yè)面寫入磁盤润匙。
分布式鎖的實(shí)現(xiàn)
Redis,但CAP中REDIS并不支持C唉匾。ZK可以解決這一問(wèn)題數(shù)據(jù)庫(kù)索引的數(shù)據(jù)結(jié)構(gòu)趁桃,優(yōu)點(diǎn)
B+ 樹,范圍遍歷及低層級(jí)可以減少離散IOMySQL中事務(wù)的隔離級(jí)別
四個(gè)級(jí)別要簡(jiǎn)單說(shuō)下。其中Innodb下RR是如何解決幻讀的也要提一下卫病。間隙鎖及MVCC油啤。RedoLog, BinLog, UndoLog 區(qū)別及作用
有無(wú)聽過(guò)逃逸分析
標(biāo)量替換,鎖膨脹蟀苛,鎖消除益咬,棧內(nèi)分配等有無(wú)通過(guò)擁塞控制,聊一下其原理
TCP擁塞控制帜平。BBR等間隙鎖上鎖細(xì)節(jié)
確認(rèn)過(guò)眼神幽告,是極客時(shí)間的同班同學(xué)哈哈哈哈哈。樂(lè)觀鎖與悲觀鎖
簡(jiǎn)單聊一下裆甩,擴(kuò)展到CAS冗锁,然后是ABA問(wèn)題,如何解決嗤栓?版本號(hào)冻河。ConcurrentHashMap實(shí)現(xiàn)原理
分段鎖及CAS,其他同HashMapReentrantLock 源碼實(shí)現(xiàn)
HashMap 源碼實(shí)現(xiàn)
調(diào)表茉帅、布隆過(guò)濾器(布谷鳥過(guò)濾器)
項(xiàng)目類問(wèn)題
項(xiàng)目類問(wèn)題大致分為以下幾種
聊一下項(xiàng)目架構(gòu)
聊一下解決過(guò)哪些問(wèn)題
自己在團(tuán)隊(duì)中的角色叨叙,團(tuán)隊(duì)在公司的角色,當(dāng)前工作在公司中的定位等等
項(xiàng)目細(xì)節(jié)堪澎,會(huì)根據(jù)說(shuō)的東西提出一些疑問(wèn)擂错,對(duì)做的不好的地方做優(yōu)化等等
技術(shù)選型類問(wèn)題
- 外包項(xiàng)目以客戶環(huán)境優(yōu)先。
- 功能得滿足
- 看有無(wú)成功生產(chǎn)考驗(yàn)為其背書
- 社區(qū)環(huán)境樱蛤,是否仍在維護(hù)钮呀,換句話說(shuō),出了問(wèn)題昨凡,可有人幫你找紙擦屁股
- 開發(fā)語(yǔ)言(小公司不用考慮行楞,大公司會(huì)考慮自維護(hù))
設(shè)計(jì)類問(wèn)題
搶紅包
幾個(gè)要點(diǎn):
請(qǐng)求抖動(dòng)。請(qǐng)求的Set化土匀。對(duì)請(qǐng)求做消息隊(duì)列防止打垮服務(wù)器設(shè)計(jì)一個(gè)定時(shí)任務(wù)系統(tǒng)
釘釘?shù)南⒁炎x未讀子房,如何設(shè)計(jì)該功能對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)
如何實(shí)現(xiàn)斷點(diǎn)續(xù)傳
文件分塊+校驗(yàn)碼
算法類
Top K 問(wèn)題的時(shí)間復(fù)雜度;如果內(nèi)存足夠就轧,能否優(yōu)化其時(shí)間復(fù)雜度
小根堆证杭,n(logk)。后面一問(wèn)沒(méi)想出來(lái)二維數(shù)組妒御,向左遞增解愤,向右遞增,最優(yōu)解
第一反應(yīng)是依賴有序特性二分查乎莉,橫豎交替送讲。但不對(duì)*** 2 x N的空間奸笤,使用1 x 2的矩形填充,共有多少種方式***
標(biāo)準(zhǔn)動(dòng)態(tài)規(guī)劃哼鬓,狀態(tài)轉(zhuǎn)移方程式:dp[n] = dp[n-1] + dp[n-2]监右。
就是這題還有上面那題把我心態(tài)弄慌的QAQ,差點(diǎn)過(guò)了异希,太可惜了求數(shù)組中最大山脈數(shù)組的長(zhǎng)度
有向圖中健盒,求起點(diǎn)到任意一點(diǎn)的最短路徑長(zhǎng)度
DFS或者BFS,然后DP優(yōu)化一下
阿里巴巴
截止到11-20號(hào)称簿,阿里一共面了六輪扣癣,其中支付寶給的評(píng)級(jí)是P5,但社招并無(wú)該級(jí)別的HC(簡(jiǎn)單來(lái)說(shuō)就是掛了QAQ)憨降,而且支付寶的面試沒(méi)有問(wèn)技術(shù)父虑,全程問(wèn)項(xiàng)目。中間被菜鳥鴿了一波授药,企業(yè)事業(yè)部虐了一波士嚎,目前在走淘寶特價(jià)版的流程。
想進(jìn)阿里烁焙,我覺(jué)得要么學(xué)歷好(重點(diǎn)大學(xué)本/碩/博或者海龜),要么有開源貢獻(xiàn)或者博客質(zhì)量高耕赘,或者是走邊緣部門骄蝇。最重要的一點(diǎn),履歷得好操骡,不能頻繁跳槽九火,最好能有知名互聯(lián)網(wǎng)搬磚經(jīng)歷(比如攜程[狗頭])
技術(shù)類問(wèn)題
創(chuàng)建線程池的參數(shù)
CPU密集型和IO密集型的設(shè)置區(qū)別及原因GC算法
引用計(jì)數(shù)法〔嵴校可達(dá)性分析(三色標(biāo)記)岔激。標(biāo)記-清除。標(biāo)記-壓縮是掰。如何解決頻繁GC
這個(gè)問(wèn)題其實(shí)在問(wèn)什么情況下會(huì)觸發(fā)GC
- System.gc();
- jcmd 也可以觸發(fā)
- Young區(qū)無(wú)可用空間
- Young晉升至Old時(shí)無(wú)足夠空間
- 永久代滿:常量池虑鼎、類數(shù)據(jù)(動(dòng)態(tài)代理類)
HR類問(wèn)題
- 為什么考慮換工作(我是兩年經(jīng)驗(yàn)一年一跳)
- 職業(yè)規(guī)劃,目前還欠缺什么
- 如何看待工作