十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
本文轉(zhuǎn)自雷鋒網(wǎng),如需轉(zhuǎn)載請至雷鋒網(wǎng)官網(wǎng)申請授權(quán)。

創(chuàng)新互聯(lián)建站提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、網(wǎng)頁設(shè)計(jì),高端網(wǎng)站設(shè)計(jì),廣告投放平臺等致力于企業(yè)網(wǎng)站建設(shè)與公司網(wǎng)站制作,10年的網(wǎng)站開發(fā)和建站經(jīng)驗(yàn),助力企業(yè)信息化建設(shè),成功案例突破超過千家,是您實(shí)現(xiàn)網(wǎng)站建設(shè)的好選擇.
馬上就是秋招啦,相信很多小伙伴現(xiàn)在都在緊張的泡圖書館備戰(zhàn)和刷題。今天,我們要給大家推薦的是一份包含了阿里巴巴、華為、百度、騰訊、美團(tuán)、字節(jié)跳動、滴滴、京東等知名互聯(lián)網(wǎng)公司技術(shù)面試題的 github 項(xiàng)目。截止目前,該項(xiàng)目已獲得 16000+ star。
項(xiàng)目的 github 地址為:https://github.com/0voice/interview_internal_reference
這份面試題庫共分為 20 個(gè)篇章,其中,前面 8 篇(第一部分)是以公司為區(qū)分,總結(jié)了各大互聯(lián)網(wǎng)公司的技術(shù)面試題和答案,后面部分(第二部分)是按照面試題的知識點(diǎn)進(jìn)行了專題總結(jié)。
在第一部分,我們不僅可以看到這些知名互聯(lián)網(wǎng)公司的面試題,還可以看到出題人和參考答案。以排在最前面的阿里巴巴為例子,我們可以看到,這里面收集了 37 個(gè)面試題。
上圖的字比較小,為了方便大家閱讀,我們把這些題目貼在下面:
阿里篇
________________________________________
1.1.1 如何實(shí)現(xiàn)一個(gè)高效的單向鏈表逆序輸出?
1.1.2 已知 sqrt(2) 約等于 1.414,要求不用數(shù)學(xué)庫,求 sqrt(2) 精確到小數(shù)點(diǎn)后 10 位
1.1.3 給定一個(gè)二叉搜索樹 (BST),找到樹中第 K 小的節(jié)點(diǎn)
1.1.4 LRU 緩存機(jī)制
1.1.5 關(guān)于 epoll 和 select 的區(qū)別,以下哪些說法是正確的
1.1.6 從 innodb 的索引結(jié)構(gòu)分析,為什么索引的 key 長度不能太長
1.1.7 MySQL 的數(shù)據(jù)如何恢復(fù)到任意時(shí)間點(diǎn)?
1.1.8 NFS 和 SMB 是最常見的兩種 NAS(Network Attached Storage)協(xié)議,當(dāng)把一個(gè)文件系統(tǒng)同時(shí)通過 NFS 和 SMB 協(xié)議共享給多個(gè)主機(jī)訪問時(shí),以下哪些說法是錯誤的
1.1.9 輸入 ping IP 后敲回車,發(fā)包前會發(fā)生什么?
1.2.0 請解釋下為什么鹿晗發(fā)布戀情的時(shí)候,微博系統(tǒng)會崩潰,如何解決?
1.2.1 現(xiàn)有一批郵件需要發(fā)送給訂閱顧客,且有一個(gè)集群(集群的節(jié)點(diǎn)數(shù)不定,會動態(tài)擴(kuò)容縮容)來負(fù)責(zé)具體的郵件發(fā)送任務(wù),如何讓系統(tǒng)盡快地完成發(fā)送?
1.2.2 有一批氣象觀測站,現(xiàn)需要獲取這些站點(diǎn)的觀測數(shù)據(jù),并存儲到 Hive 中。但是氣象局只提供了 api 查詢,每次只能查詢單個(gè)觀測點(diǎn)。那么如果能夠方便快速地獲取到所有的觀測點(diǎn)的數(shù)據(jù)?
1.2.3 如何實(shí)現(xiàn)兩金額數(shù)據(jù)相加(最多小數(shù)點(diǎn)兩位)
1.2.4 關(guān)于并行計(jì)算的一些基礎(chǔ)開放問題
1.2.5 請計(jì)算 XILINX 公司 VU9P 芯片的算力相當(dāng)于多少 TOPS,給出計(jì)算過程與公式
1.2.6 一顆現(xiàn)代處理器,每秒大概可以執(zhí)行多少條簡單的 MOV 指令,有哪些主要的影響因素
1.2.7 請分析 MaxCompute 產(chǎn)品與分布式技術(shù)的關(guān)系、當(dāng)前大數(shù)據(jù)計(jì)算平臺類產(chǎn)品的市場現(xiàn)狀和發(fā)展趨勢
1.2.8 對大數(shù)據(jù)平臺中的元數(shù)據(jù)管理是怎么理解的,元數(shù)據(jù)收集管理體系是怎么樣的,會對大數(shù)據(jù)應(yīng)用有什么樣的影響
1.2.9 你理解常見如阿里,和友商大數(shù)據(jù)平臺的技術(shù)體系差異以及發(fā)展趨勢和技術(shù)瓶頸,在存儲和計(jì)算兩個(gè)方面進(jìn)行概述
1.3.0 在云計(jì)算大數(shù)據(jù)處理場景中,每天運(yùn)行著成千上萬的任務(wù),每個(gè)任務(wù)都要進(jìn)行 IO 讀寫。存儲系統(tǒng)為了更好的服務(wù),經(jīng)常會保證高優(yōu)先級的任務(wù)優(yōu)先執(zhí)行。當(dāng)多個(gè)作業(yè)或用戶訪問存儲系統(tǒng)時(shí), 如何保證優(yōu)先級和公平性
1.3.1 最大頻率棧
1.3.2 給定一個(gè)鏈表,刪除鏈表的倒數(shù)第 N 個(gè)節(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn)
1.3.3 如果讓你設(shè)計(jì)一個(gè)通用的、支持各種數(shù)據(jù)庫秒級備份和恢復(fù)的系統(tǒng),你會如何設(shè)計(jì)
1.3.4 如果讓你來設(shè)計(jì)一個(gè)支持?jǐn)?shù)據(jù)庫、NOSQL 和大數(shù)據(jù)之間數(shù)據(jù)實(shí)時(shí)流動的數(shù)據(jù)流及處理的系統(tǒng),你會考慮哪些問題?如何設(shè)計(jì)?
1.3.5 給定一個(gè)整數(shù)數(shù)組和一個(gè)整數(shù),返回兩個(gè)數(shù)組的索引,這兩個(gè)索引指向的數(shù)字的加和等于指定的整數(shù)。需要最優(yōu)的算法,分析算法的空間和時(shí)間復(fù)雜度
1.3.6 假如給你一個(gè)新產(chǎn)品,你將從哪些方面來保障它的質(zhì)量?
1.3.7 請?jiān)u估一下程序的執(zhí)行結(jié)果?
打開這些面試題,我們可以看到出題人和參考答案。如打開第一題:「如何實(shí)現(xiàn)一個(gè)高效的單向鏈表逆序輸出?」我們看到的內(nèi)容如下:
問題:如何實(shí)現(xiàn)一個(gè)高效的單向鏈表逆序輸出?
出題人:阿里巴巴出題專家:昀龍/阿里云彈性人工智能負(fù)責(zé)人
參考答案:下面是其中一種寫法,也可以有不同的寫法,比如遞歸等。供參考。
- typedef struct node{
- int data;
- struct node* next;
- node(int d):data(d), next(NULL){}
- }node;
- void reverse(node* head)
- {
- if(NULL == head || NULL == head->next){
- return;
- }
- node* prev=NULL;
- node* pcur=head->next;
- node* next;
- while(pcur!=NULL){
- if(pcur->next==NULL){
- pcur->next=prev;
- break;
- }
- next=pcur->next;
- pcur->next=prev;
- prev=pcur;
- pcur=next;
- }
- head->next=pcur;
- node*tmp=head->next;
- while(tmp!=NULL){
- cout<
data<<"\t"; - tmp=tmp->next;
- }
- }
第二部分分為了 12 個(gè)技術(shù)專題,分別是 MySQL 篇、Redis 篇、MongDB 篇、Zookeeper 篇、Nginx 篇、算法篇、內(nèi)存篇、cpu 篇、磁盤篇、網(wǎng)絡(luò)通信篇、安全篇和并發(fā)篇。這里面針對每個(gè)專題,整理了一些經(jīng)常會遇到的面試題。
例如,MySQL 篇包含的題目如下:
和前面一樣,這里也給出了參考答案。打開上圖的第一個(gè)題目,我們看到如下內(nèi)容:
題目:主鍵 超鍵 候選鍵 外鍵是什么
定義
超鍵 (super key): 在關(guān)系中能唯一標(biāo)識元組的屬性集稱為關(guān)系模式的超鍵
候選鍵 (candidate key): 不含有多余屬性的超鍵稱為候選鍵。也就是在候選鍵中,若再刪除屬性,就不是鍵了!
主鍵 (primary key): 用戶選作元組標(biāo)識的一個(gè)候選鍵程序主鍵
外鍵 (foreign key):如果關(guān)系模式 R 中屬性 K 是其它模式的主鍵,那么 k 在模式 R 中稱為外鍵。
舉例
比如有如下數(shù)據(jù):
| 學(xué)號 | 姓名 | 性別 | 年齡 | 系別 | 專業(yè) |
| 20020612 | 李輝 | 男 | 20 | 計(jì)算機(jī) | 軟件開發(fā) |
| 20060613 | 張明 | 男 | 18 | 計(jì)算機(jī) | 軟件開發(fā) |
| 20060614 | 王小玉 | 女 | 19 | 物理 | 力學(xué) |
| 20060615 | 李淑華 | 女 | 17 | 生物 | 動物學(xué) |
| 20060616 | 趙靜 | 男 | 21 | 化學(xué) | 食品化學(xué) |
| 20060617 | 趙靜 | 女 | 20 | 生物 | 植物學(xué) |
1.超鍵
在關(guān)系中能唯一標(biāo)識元組的屬性集稱為關(guān)系模式的超鍵。
于是我們從例子中可以發(fā)現(xiàn) 學(xué)號是標(biāo)識學(xué)生實(shí)體的唯一標(biāo)識。那么該元組的超鍵就為學(xué)號。
除此之外我們還可以把它跟其他屬性組合起來,比如:
(學(xué)號,性別)
(學(xué)號,年齡)
這樣也是超鍵。
2.候選鍵
不含多余屬性的超鍵為候選鍵。
根據(jù)例子可知,學(xué)號是一個(gè)可以唯一標(biāo)識元組的唯一標(biāo)識,因此學(xué)號是一個(gè)候選鍵,實(shí)際上,候選鍵是超鍵的子集,比如(學(xué)號,年齡)是超鍵,但是它不是候選鍵。因?yàn)樗€有了額外的屬性。
3.主鍵
用戶選擇的候選鍵作為該元組的唯一標(biāo)識,那么它就為主鍵。
簡單的說,例子中的元組的候選鍵為學(xué)號,但是我們選定他作為該元組的唯一標(biāo)識,那么學(xué)號就為主鍵。
4.外鍵
外鍵是相對于主鍵的,比如在學(xué)生記錄里,主鍵為學(xué)號,在成績單表中也有學(xué)號字段,因此學(xué)號為成績單表的外鍵,為學(xué)生表的主鍵。
總結(jié)
主鍵為候選鍵的子集,候選鍵為超鍵的子集,而外鍵的確定是相對于主鍵的。
雖然這只是一個(gè)非常簡單的概念題,但由此我們也可以看到,這份題庫給出的答案特別非常詳細(xì),不僅對問題中提出的概念進(jìn)行了解釋,還用具體的例子進(jìn)行了說明,方便同學(xué)們的容易理解和記憶。
還在等什么,趕快收藏這份資源開始學(xué)習(xí)吧~一分耕耘一分收獲,相信同學(xué)們接下來一定會拿到心儀的 offer,加油!