備戰(zhàn)“金九銀十”跳槽季:阿里、百度、美團(tuán)等技術(shù)面試題及答案

阿里篇

  1. 如何實(shí)現(xiàn)一個(gè)高效的單向鏈表逆序輸出?

  2. 已知sqrt(2)約等于1.414,要求不用數(shù)學(xué)庫,求sqrt(2)精確到小數(shù)點(diǎn)后10位

  3. 給定一個(gè)二叉搜索樹(BST),找到樹中第 K 小的節(jié)點(diǎn)

  4. LRU緩存機(jī)制

  5. 關(guān)于epoll和select的區(qū)別,以下哪些說法是正確的

  6. 從innodb的索引結(jié)構(gòu)分析,為什么索引的 key 長(zhǎng)度不能太長(zhǎng)

  7. MySQL的數(shù)據(jù)如何恢復(fù)到任意時(shí)間點(diǎn)?

  8. NFS 和 SMB 是最常見的兩種 NAS(Network Attached Storage)協(xié)議,當(dāng)把一個(gè)文件系統(tǒng)同時(shí)通過 NFS 和 SMB 協(xié)議共享給多個(gè)主機(jī)訪問時(shí),以下哪些說法是錯(cuò)誤的

  9. 輸入 ping IP 后敲回車,發(fā)包前會(huì)發(fā)生什么?

  10. 請(qǐng)解釋下為什么鹿晗發(fā)布戀情的時(shí)候,微博系統(tǒng)會(huì)崩潰,如何解決?

  11. 現(xiàn)有一批郵件需要發(fā)送給訂閱顧客,且有一個(gè)集群(集群的節(jié)點(diǎn)數(shù)不定,會(huì)動(dòng)態(tài)擴(kuò)容縮容)來負(fù)責(zé)具體的郵件發(fā)送任務(wù),如何讓系統(tǒng)盡快地完成發(fā)送?

  12. 有一批氣象觀測(cè)站,現(xiàn)需要獲取這些站點(diǎn)的觀測(cè)數(shù)據(jù),并存儲(chǔ)到 Hive 中。但是氣象局只提供了 api 查詢,每次只能查詢單個(gè)觀測(cè)點(diǎn)。那么如果能夠方便快速地獲取到所有的觀測(cè)點(diǎn)的數(shù)據(jù)?

  13. 如何實(shí)現(xiàn)兩金額數(shù)據(jù)相加(最多小數(shù)點(diǎn)兩位)

  14. 關(guān)于并行計(jì)算的一些基礎(chǔ)開放問題

  15. 請(qǐng)計(jì)算XILINX公司VU9P芯片的算力相當(dāng)于多少TOPS,給出計(jì)算過程與公式

  16. 一顆現(xiàn)代處理器,每秒大概可以執(zhí)行多少條簡(jiǎn)單的MOV指令,有哪些主要的影響因素

  17. 請(qǐng)分析 MaxCompute 產(chǎn)品與分布式技術(shù)的關(guān)系、當(dāng)前大數(shù)據(jù)計(jì)算平臺(tái)類產(chǎn)品的市場(chǎng)現(xiàn)狀和發(fā)展趨勢(shì)

  18. 對(duì)大數(shù)據(jù)平臺(tái)中的元數(shù)據(jù)管理是怎么理解的,元數(shù)據(jù)收集管理體系是怎么樣的,會(huì)對(duì)大數(shù)據(jù)應(yīng)用有什么樣的影響

  19. 你理解常見如阿里,和友商大數(shù)據(jù)平臺(tái)的技術(shù)體系差異以及發(fā)展趨勢(shì)和技術(shù)瓶頸,在存儲(chǔ)和計(jì)算兩個(gè)方面進(jìn)行概述

  20. 在云計(jì)算大數(shù)據(jù)處理場(chǎng)景中,每天運(yùn)行著成千上萬的任務(wù),每個(gè)任務(wù)都要進(jìn)行 IO 讀寫。存儲(chǔ)系統(tǒng)為了更好的服務(wù),經(jīng)常會(huì)保證高優(yōu)先級(jí)的任務(wù)優(yōu)先執(zhí)行。當(dāng)多個(gè)作業(yè)或用戶訪問存儲(chǔ)系統(tǒng)時(shí),如何保證優(yōu)先級(jí)和公平性

  21. 最大頻率棧

  22. 給定一個(gè)鏈表,刪除鏈表的倒數(shù)第N個(gè)節(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn)

  23. 如果讓你設(shè)計(jì)一個(gè)通用的、支持各種數(shù)據(jù)庫秒級(jí)備份和恢復(fù)的系統(tǒng),你會(huì)如何設(shè)計(jì)

  24. 如果讓你來設(shè)計(jì)一個(gè)支持?jǐn)?shù)據(jù)庫、NOSQL 和大數(shù)據(jù)之間數(shù)據(jù)實(shí)時(shí)流動(dòng)的數(shù)據(jù)流及處理的系統(tǒng),你會(huì)考慮哪些問題?如何設(shè)計(jì)?

  25. 給定一個(gè)整數(shù)數(shù)組和一個(gè)整數(shù),返回兩個(gè)數(shù)組的索引,這兩個(gè)索引指向的數(shù)字的加和等于指定的整數(shù)。需要最優(yōu)的算法,分析算法的空間和時(shí)間復(fù)雜度

  26. 假如給你一個(gè)新產(chǎn)品,你將從哪些方面來保障它的質(zhì)量?

  27. 請(qǐng)?jiān)u估一下程序的執(zhí)行結(jié)果?

華為篇

  1. static有什么用途?(請(qǐng)至少說明兩種)

  2. 引用與指針有什么區(qū)別?

  3. 描述實(shí)時(shí)系統(tǒng)的基本特性

  4. 全局變量和局部變量在內(nèi)存中是否有區(qū)別?如果有,是什么區(qū)別?

  5. 什么是平衡二叉樹?

  6. 堆棧溢出一般是由什么原因?qū)е碌模?/p>

  7. 什么函數(shù)不能聲明為虛函數(shù)?

  8. 冒泡排序算法的時(shí)間復(fù)雜度是什么?

  9. 寫出float x 與“零值”比較的if語句

  10. Internet采用哪種網(wǎng)絡(luò)協(xié)議?該協(xié)議的主要層次結(jié)構(gòu)?

  11. Internet物理地址和IP地址轉(zhuǎn)換采用什么協(xié)議?

  12. IP地址的編碼分為哪倆部分?

  13. 用戶輸入M,N值,從1至N開始順序循環(huán)數(shù)數(shù),每數(shù)到M輸出該數(shù)值,直至全部輸出。寫出C程序。

  14. 不能做switch()的參數(shù)類型是

  15. int A[nSize],其中隱藏著若干0,其余非0整數(shù),寫一個(gè)函數(shù)int Func(int* A, int nSize),使A把0移至后面,非0整數(shù)移至數(shù)組前面并保持有序,返回值為原數(shù)據(jù)中第一個(gè)元素為0的下標(biāo)。

  16. 寫一個(gè)程序, 要求功能:求出用1,2,5這三個(gè)數(shù)不同個(gè)數(shù)組合的和為100的組合個(gè)數(shù)

  17. 實(shí)現(xiàn)一個(gè)函數(shù),把一個(gè)字符串中的字符從小寫轉(zhuǎn)為大寫

  18. 隨機(jī)輸入一個(gè)數(shù),判斷它是不是對(duì)稱數(shù)(回文數(shù))(如3,121,12321,45254)。不能用字符串庫函數(shù)

  19. 求2~2000的所有素?cái)?shù).有足夠的內(nèi)存,要求盡量快

  20. A,B,C,D四個(gè)進(jìn)程,A向buf里面寫數(shù)據(jù),B,C,D向buf里面讀數(shù)據(jù),當(dāng)A寫完,且B,C,D都讀一次后,A才能再寫。用P,V操作實(shí)現(xiàn)。

  21. 將單向鏈表reverse,如ABCD變成DCBA,只能搜索鏈表一次。

  22. 將二叉樹的兩個(gè)孩子換位置,即左變右,右變左。不能用遞規(guī)。

  23. 以下屬于物理層的設(shè)備是?

  24. 在以太網(wǎng)中,是根據(jù)()地址來區(qū)分不同的設(shè)備的?

  25. 以下為傳輸層協(xié)議的是?

  26. 以下對(duì)MAC地址描述正確的是?

  27. 以下屬于數(shù)據(jù)鏈路層功能的是?

  28. IEEE802.3u標(biāo)準(zhǔn)是指?

  29. 如果要將兩計(jì)算機(jī)通過雙絞線直接連接,正確的線序是?

  30. 在V.35和V.24規(guī)程中,控制信號(hào)RTS表示?

  31. 路由器作為網(wǎng)絡(luò)互連設(shè)備,必須具備以下哪些特點(diǎn)?

  32. 路由器的作用有?

  33. 調(diào)用上一條歷史命令的快捷鍵是?

  34. 交換機(jī)工作在OSI七層的哪一層?

  35. 以下對(duì)CSMA/CD描述正確的是?

  36. 以下對(duì)STORE ANDFORWARD描述正確的是?

  37. 以下對(duì)交換機(jī)工作方式描述正確的是?

  38. VLAN的主要作用有?

  39. 在交換機(jī)中用戶權(quán)限分為幾個(gè)級(jí)別?

  40. 在路由器的配置過程中查詢以S開頭所有命令的方法是?

  41. 第一次配置路由器時(shí)可以使用的方法為?

  42. 在何種狀態(tài)下可以為路由器改名?

  43. 某公司申請(qǐng)到一個(gè)C類IP地址,但要連接6個(gè)的子公司,最大的一個(gè)子公司有 26臺(tái)計(jì)算機(jī),每個(gè)子公司在一個(gè)網(wǎng)段中,則子網(wǎng)掩碼應(yīng)設(shè)為?

  44. 與10.110.12.29mask 255.255.255.224屬于同一網(wǎng)段的主機(jī)IP地址是?

  45. ARP協(xié)議的作用是?

  46. 當(dāng)路由器接收的IP報(bào)文的TTL值等于1時(shí),采取的策略是?

  47. 在NetWare 網(wǎng)絡(luò)中,客戶需要訪問某個(gè)類型的服務(wù)器時(shí),首先要發(fā)送一個(gè) ()廣播報(bào)文來尋找服務(wù)器?

  48. IPX地址網(wǎng)絡(luò)地址有( )個(gè)字節(jié)?

  49. 對(duì)于幀中繼描述正確的是?

  50. 對(duì)于INVERSE ARP的描述正確的是?

百度篇

  1. 在函數(shù)內(nèi)定義一個(gè)字符數(shù)組,用gets函數(shù)輸入字符串的時(shí)候,如果輸入越界,為什么程序會(huì)崩潰?

  2. C++中引用與指針的區(qū)別

  3. C/C++程序的內(nèi)存分區(qū)

  4. 快速排序的思想、時(shí)間復(fù)雜度、實(shí)現(xiàn)以及優(yōu)化方法

  5. IO模型——IO多路復(fù)用機(jī)制?

  6. 常用的Linux命令

  7. C中變量的存儲(chǔ)類型有哪些?

  8. 動(dòng)態(tài)規(guī)劃的本質(zhì)

  9. 實(shí)踐中如何優(yōu)化MySQL?

  10. 什么情況下設(shè)置了索引但無法使用?

  11. SQL語句的優(yōu)化

  12. 數(shù)據(jù)庫索引的底層實(shí)現(xiàn)原理和優(yōu)化

  13. HTTP和HTTPS的主要區(qū)別?

  14. 如何設(shè)計(jì)一個(gè)高并發(fā)的系統(tǒng)?

  15. 兩條相交的單向鏈表,如何求他們的第一個(gè)公共節(jié)點(diǎn)?

  16. 求單向局部循環(huán)鏈表的環(huán)入口?

  17. IP地址如何在數(shù)據(jù)庫中存儲(chǔ)?

  18. new/delete和malloc/free的底層實(shí)現(xiàn)?

  19. overload、override、overwrite的介紹?

  20. 小端/大端機(jī)器?

  21. 守護(hù)進(jìn)程

  22. 多線程的優(yōu)缺點(diǎn)

  23. 長(zhǎng)連接與短連接

  24. 二分圖應(yīng)用于最佳匹配問題(游客對(duì)房間的滿意度之和最大問題)

  25. class與struct的區(qū)別?

  26. 虛函數(shù)和純虛函數(shù)

  27. menset()函數(shù)

  28. 實(shí)現(xiàn)一個(gè)函數(shù),對(duì)一個(gè)正整數(shù)n,算得到1需要的最少操作次數(shù)。操作規(guī)則為:如果n為偶數(shù),將其除以2;如果n為奇數(shù),可以加1或減1;一直處理下去。

  29. 找到滿足條件的數(shù)組

  30. 一個(gè)大的含有50M個(gè)URL的記錄,一個(gè)小的含有500個(gè)URL的記錄,找出兩個(gè)記錄里相同的URL

  31. 海量日志數(shù)據(jù),提取出某日訪問百度次數(shù)最多的那個(gè)IP

  32. 有10個(gè)文件,每個(gè)文件1G,每個(gè)文件的每一行都存放的是用戶的query,每個(gè)文件的query都可能重復(fù)。如何按照query的頻度排序?

  33. 螞蟻爬桿問題

  34. 當(dāng)在瀏覽器中輸入一個(gè)url后回車,后臺(tái)發(fā)生了什么?比如輸入url后,你看到了百度的首頁,那么這一切是如何發(fā)生的呢?

  35. 判斷兩棵樹是否相等,請(qǐng)實(shí)現(xiàn)兩棵樹是否相等的比較,相等返回1,否則返回其他值,并說明算法復(fù)雜度

  36. 三個(gè)警察和三個(gè)囚徒的過河問題

  37. 從300萬字符串中找到最熱門的10條

  38. 如何找出字典中的兄弟單詞。給定一個(gè)單詞a,如果通過交換單詞中字母的順序可以得到另外的單詞b,那么定義b是a的兄弟單詞。現(xiàn)在給定一個(gè)字典,用戶輸入一個(gè)單詞,如何根據(jù)字典找出這個(gè)單詞有多少個(gè)兄弟單詞?

  39. 找出數(shù)組中出現(xiàn)次數(shù)超過一半的數(shù),現(xiàn)在有一個(gè)數(shù)組,已知一個(gè)數(shù)出現(xiàn)的次數(shù)超過了一半,請(qǐng)用O(n)的復(fù)雜度的算法找出這個(gè)數(shù)。

  40. 找出被修改過的數(shù)字

  41. 設(shè)計(jì)DNS服務(wù)器中cache的數(shù)據(jù)結(jié)構(gòu)。要求設(shè)計(jì)一個(gè)DNS的Cache結(jié)構(gòu),要求能夠滿足每秒5000以上的查詢,滿足IP數(shù)據(jù)的快速插入,查詢的速度要快。(題目還給出了一系列的數(shù)據(jù),比如:站點(diǎn)數(shù)總共為5000萬,IP地址有1000萬,等等)

  42. 找出給定字符串對(duì)應(yīng)的序號(hào)

  43. 找出第k大的數(shù)字所在的位置。寫一段程序,找出數(shù)組中第k大小的數(shù),輸出數(shù)所在的位置。例如{2,4,3,4,7}中,第一大的數(shù)是7,位置在4。第二大、第三大的數(shù)都是4,位置在1、3隨便輸出哪一個(gè)均可。

  44. 給40億個(gè)不重復(fù)的unsigned int的整數(shù),沒排過序的,然后再給幾個(gè)數(shù),如何快速判斷這幾個(gè)數(shù)是否在那40億個(gè)數(shù)當(dāng)中?

  45. 在一個(gè)文件中有10G個(gè)整數(shù),亂序排列,要求找出中位數(shù)。內(nèi)存限制為2G。

  46. 時(shí)分秒針在一天之類重合多少次?(24小時(shí))

  47. 將多個(gè)集合合并成沒有交集的集合。

  48. 平面內(nèi)有11個(gè)點(diǎn),由它們連成48條不同的直線,由這些點(diǎn)可連成多少個(gè)三角形?

騰訊篇

Java基礎(chǔ)

  1. JAVA中的幾種基本數(shù)據(jù)類型是什么,各自占用多少字節(jié)。

  2. String類能被繼承嗎,為什么。

  3. String,Stringbuffer,StringBuilder的區(qū)別。

  4. ArrayList和LinkedList有什么區(qū)別。

  5. 講講類的實(shí)例化順序,比如父類靜態(tài)數(shù)據(jù),構(gòu)造函數(shù),字段,子類靜態(tài)數(shù)據(jù),構(gòu)造函數(shù),字段,當(dāng)new的時(shí)候,他們的執(zhí)行順序。

  6. 用過哪些Map類,都有什么區(qū)別,HashMap是線程安全的嗎,并發(fā)下使用的Map是什么,他們內(nèi)部原理分別是什么,比如存儲(chǔ)方式,hashcode,擴(kuò)容,默認(rèn)容量等。

  7. JAVA8的ConcurrentHashMap為什么放棄了分段鎖,有什么問題嗎,如果你來設(shè)計(jì),你如何設(shè)計(jì)。

  8. 有沒有有順序的Map實(shí)現(xiàn)類,如果有,他們是怎么保證有序的。

  9. 抽象類和接口的區(qū)別,類可以繼承多個(gè)類么,接口可以繼承多個(gè)接口么,類可以實(shí)現(xiàn)多個(gè)接口么。

  10. 繼承和聚合的區(qū)別在哪。

  11. IO模型有哪些,講講你理解的nio ,他和bio,aio的區(qū)別是啥,談?wù)剅eactor模型。

  12. 反射的原理,反射創(chuàng)建類實(shí)例的三種方式是什么。

  13. 反射中,Class.forName和ClassLoader區(qū)別 。

  14. 描述動(dòng)態(tài)代理的幾種實(shí)現(xiàn)方式,分別說出相應(yīng)的優(yōu)缺點(diǎn)。

  15. 動(dòng)態(tài)代理與cglib實(shí)現(xiàn)的區(qū)別。

  16. 為什么CGlib方式可以對(duì)接口實(shí)現(xiàn)代理。

  17. final的用途。

  18. 寫出三種單例模式實(shí)現(xiàn) 。

  19. 如何在父類中為子類自動(dòng)完成所有的hashcode和equals實(shí)現(xiàn)?這么做有何優(yōu)劣。

  20. 請(qǐng)結(jié)合OO設(shè)計(jì)理念,談?wù)勗L問修飾符public、private、protected、default在應(yīng)用設(shè)計(jì)中的作用。

  21. 深拷貝和淺拷貝區(qū)別。

  22. 數(shù)組和鏈表數(shù)據(jù)結(jié)構(gòu)描述,各自的時(shí)間復(fù)雜度。

  23. error和exception的區(qū)別,CheckedException,RuntimeException的區(qū)別。

  24. 請(qǐng)列出5個(gè)運(yùn)行時(shí)異常。

  25. 在自己的代碼中,如果創(chuàng)建一個(gè)java.lang.String類,這個(gè)類是否可以被類加載器加載?為什么。

  26. 說一說你對(duì)java.lang.Object對(duì)象中hashCode和equals方法的理解。在什么場(chǎng)景下需要重新實(shí)現(xiàn)這兩個(gè)方法。

  27. 在jdk1.5中,引入了泛型,泛型的存在是用來解決什么問題。

  28. 這樣的a.hashcode() 有什么用,與a.equals(b)有什么關(guān)系。

  29. 有沒有可能2個(gè)不相等的對(duì)象有相同的hashcode。

  30. Java中的HashSet內(nèi)部是如何工作的。

  31. 什么是序列化,怎么序列化,為什么序列化,反序列化會(huì)遇到什么問題,如何解決。

  32. java8的新特性。

JVM

  1. 什么情況下會(huì)發(fā)生棧內(nèi)存溢出。

  2. JVM的內(nèi)存結(jié)構(gòu),Eden和Survivor比例。

  3. JVM內(nèi)存為什么要分成新生代,老年代,持久代。新生代中為什么要分為Eden和Survivor。

  4. JVM中一次完整的GC流程是怎樣的,對(duì)象如何晉升到老年代,說說你知道的幾種主要的JVM參數(shù)。

  5. 你知道哪幾種垃圾收集器,各自的優(yōu)缺點(diǎn),重點(diǎn)講下cms和G1,包括原理,流程,優(yōu)缺點(diǎn)。

  6. 垃圾回收算法的實(shí)現(xiàn)原理。

  7. 當(dāng)出現(xiàn)了內(nèi)存溢出,你怎么排錯(cuò)。

  8. JVM內(nèi)存模型的相關(guān)知識(shí)了解多少,比如重排序,內(nèi)存屏障,happen-before,主內(nèi)存,工作內(nèi)存等。

  9. 簡(jiǎn)單說說你了解的類加載器,可以打破雙親委派么,怎么打破。

  10. 講講JAVA的反射機(jī)制。

  11. 你們線上應(yīng)用的JVM參數(shù)有哪些。

  12. g1和cms區(qū)別,吞吐量?jī)?yōu)先和響應(yīng)優(yōu)先的垃圾收集器選擇。

  13. 怎么打出線程棧信息。

開源框架

  1. 簡(jiǎn)單講講tomcat結(jié)構(gòu),以及其類加載器流程,線程模型等。

  2. tomcat如何調(diào)優(yōu),涉及哪些參數(shù) 。

  3. 講講Spring加載流程。

  4. Spring AOP的實(shí)現(xiàn)原理。

  5. 講講Spring事務(wù)的傳播屬性。

  6. Spring如何管理事務(wù)的。

  7. Spring怎么配置事務(wù)(具體說出一些關(guān)鍵的xml 元素)。

  8. 說說你對(duì)Spring的理解,非單例注入的原理?它的生命周期?循環(huán)注入的原理,aop的實(shí)現(xiàn)原理,說說aop中的幾個(gè)術(shù)語,它們是怎么相互工作的。

  9. Springmvc 中DispatcherServlet初始化過程。

  10. netty的線程模型,netty如何基于reactor模型上實(shí)現(xiàn)的。

  11. 為什么選擇netty。

  12. 什么是TCP粘包,拆包。解決方式是什么。

  13. netty的fashwheeltimer的用法,實(shí)現(xiàn)原理,是否出現(xiàn)過調(diào)用不夠準(zhǔn)時(shí),怎么解決。

  14. netty的心跳處理在弱網(wǎng)下怎么辦。

  15. netty的通訊協(xié)議是什么樣的。

  16. springmvc用到的注解,作用是什么,原理。

  17. springboot啟動(dòng)機(jī)制。

操作系統(tǒng)

  1. Linux系統(tǒng)下你關(guān)注過哪些內(nèi)核參數(shù),說說你知道的。

  2. Linux下IO模型有幾種,各自的含義是什么。

  3. epoll和poll有什么區(qū)別。

  4. 平時(shí)用到哪些Linux命令。

  5. 用一行命令查看文件的最后五行。

  6. 用一行命令輸出正在運(yùn)行的java進(jìn)程。

  7. 介紹下你理解的操作系統(tǒng)中線程切換過程。

  8. 進(jìn)程和線程的區(qū)別。

  9. top 命令之后有哪些內(nèi)容,有什么作用。

  10. 線上CPU爆高,請(qǐng)問你如何找到問題所在。

美團(tuán)篇

  1. java虛擬機(jī)內(nèi)存模型

  2. 內(nèi)存溢出一般發(fā)生在哪個(gè)區(qū)?永久代會(huì)不會(huì)導(dǎo)致內(nèi)存溢出?

  3. 動(dòng)態(tài)加載類的框架了解哪些?

  4. 動(dòng)態(tài)代理一般有哪幾種實(shí)現(xiàn)方式?動(dòng)態(tài)代理的應(yīng)用場(chǎng)景有哪些?

  5. 棧會(huì)不會(huì)溢出?棧溢出一般拋什么異常?jvm在哪里設(shè)置棧的大?。吭O(shè)置的參數(shù)是什么?

  6. 用過哪些命令查看jvm的狀態(tài)、堆棧信息?

  7. jvm的垃圾回收機(jī)制?

  8. java類加載機(jī)制?如何實(shí)現(xiàn)自定義類加載器?findClass與loadClass的區(qū)別?

  9. String、StringBuffer、StringBuilder的區(qū)別?對(duì)應(yīng)的使用場(chǎng)景?

  10. 如何實(shí)現(xiàn)不可變的類?

  11. 淺復(fù)制和深復(fù)制?怎樣實(shí)現(xiàn)深復(fù)制?

  12. HashMap、HashTable、ConcurrentHashMap的區(qū)別?

  13. CAS是一種什么樣的同步機(jī)制?

  14. NIO的原理,包括哪幾個(gè)組件?

  15. 簡(jiǎn)單介紹一下java的反射機(jī)制?反射在哪些地方有應(yīng)用場(chǎng)景?

  16. spring加載bean的流程?

  17. java線程池?線程池構(gòu)造函數(shù)的幾個(gè)參數(shù)含義?keepAliveTime解釋一下?

  18. 一個(gè)接口,要去調(diào)用另外5個(gè)接口,每一個(gè)接口都會(huì)返回?cái)?shù)據(jù)給這個(gè)調(diào)用接口,調(diào)用接口要對(duì)數(shù)據(jù)進(jìn)行合并并返回給上層。這樣一種場(chǎng)景可能用到并發(fā)包下的哪些類?你會(huì)怎么去實(shí)現(xiàn)這樣的業(yè)務(wù)場(chǎng)景?

  19. CountDownLatch和CyclicBarrier的區(qū)別?

  20. 線程加鎖有哪些方式?synchronized和lock的區(qū)別?

  21. volatile關(guān)鍵字的作用?為什么使用AtomicLong而不使用Long?AtomicLong的底層是怎么實(shí)現(xiàn)的?

22.. mysql的存儲(chǔ)引擎有哪幾種?

  1. sql優(yōu)化有哪些著手點(diǎn)?組合索引的最左前綴原則的含義?

  2. springmvc處理請(qǐng)求的流程?

  3. spring的事務(wù)怎么使用?事務(wù)回滾?自定義異常?

  4. 臟讀?幻讀?

  5. tcp四次揮手的過程?TIME_WAIT為什么至少設(shè)置兩倍的MSL時(shí)間?

  6. get和post請(qǐng)求的區(qū)別?

  7. cookie和session的請(qǐng)求?

  8. 了解哪些開源的中間件?緩存?消息?分布式框架?

  9. 用到過哪些設(shè)計(jì)模式?單例模式的實(shí)現(xiàn)?

  10. 數(shù)據(jù)庫的事務(wù)實(shí)現(xiàn)原理、操作過程、如何做到事物之間的獨(dú)立性等問題

  11. 數(shù)據(jù)庫的臟讀,幻讀,不可重復(fù)讀出現(xiàn)的原因原理,解決辦法

  12. 數(shù)據(jù)庫的隔離級(jí)別、MVCC

  13. 樂觀鎖、悲觀鎖、互斥鎖、讀寫鎖的原理實(shí)現(xiàn)與區(qū)別

  14. 線程的生命周期

  15. 一致性hash算法原理與應(yīng)用

  16. CAP原則

  17. CAS操作

  18. 分布式raft算法

頭條篇

  1. 5個(gè)人去一個(gè)海島尋寶,最后一共找到了100枚金幣。他們約定了一個(gè)分配方案。

  2. 給你一個(gè)有序整數(shù)數(shù)組,數(shù)組中的數(shù)可以是正數(shù)、負(fù)數(shù)、零,請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),這個(gè)函數(shù)返回一個(gè)整數(shù):返回這個(gè)數(shù)組所有數(shù)的平方值中有多少種不同的取值。

  3. 一個(gè)環(huán)有10個(gè)節(jié)點(diǎn),編號(hào)0-9。從0點(diǎn)出發(fā),走N步又能回到0點(diǎn),共有多少種走法?

  4. 一個(gè)亂序數(shù)組,求第K大的數(shù)。排序方式使用字典序。

  5. 一棵二叉樹,求最大通路長(zhǎng)度。(即最大左右子樹高度之和)

  6. 進(jìn)程和線程的區(qū)別,使用線程真的能節(jié)省時(shí)間?

  7. go協(xié)程的調(diào)度方式,使用協(xié)程真的能節(jié)省時(shí)間?

  8. 水平觸發(fā)邊沿觸發(fā)的區(qū)別?在邊沿觸發(fā)下,一個(gè)socket有500的數(shù)據(jù),已讀取200然后不再處理,是不是剩下的300就永遠(yuǎn)無法讀取?

  9. 有函數(shù)如下,輸入1,返回什么?

  10. 設(shè)計(jì)http協(xié)議,A端發(fā)送 AAAA,至少讓B端知道AAAA已發(fā)送完成。

  11. 流量總?cè)肟跒閍pi_gateway,api_gateway掛了會(huì)導(dǎo)致全部掛掛,用什么機(jī)制增大可用性?

  12. mysql為什么要用b+樹,不用平衡二叉樹做索引結(jié)構(gòu)?

  13. 創(chuàng)建數(shù)據(jù)庫索引應(yīng)該怎么考慮?

  14. 使用int 做primary key和使用string 有什么優(yōu)劣?

  15. 數(shù)據(jù)庫分表的方法?

  16. 表結(jié)構(gòu),訂單紀(jì)錄如下,寫一個(gè)語句,求賣的最好的 top 10 product_id。

  17. 微服務(wù),A服務(wù)請(qǐng)求B服務(wù)B1接口,B1接口又請(qǐng)求A服務(wù)A2接口。會(huì)不會(huì)有問題?

  18. 不使用高級(jí)工具,只使用Linux自帶的工具,你會(huì)如何debug?

  19. 如何預(yù)估一個(gè)mysql語句的性能?

  20. go函數(shù)中,返回值未命名,發(fā)生了panic,但是在函數(shù)內(nèi)recover了。函數(shù)返回什么值?

  21. socket中,在tcp協(xié)議層面,數(shù)據(jù)分為10個(gè)報(bào)文發(fā)放。1-7次很順利,第8次丟失。這次通信一定失敗嗎?如果第8次數(shù)據(jù)會(huì)重發(fā),那在接收端是不是:先讀取到1-7次的數(shù)據(jù),然后讀取到8-10次的數(shù)據(jù)?還是9-10次的數(shù)據(jù)會(huì)先到達(dá)?

  22. free -h,buffers 和cached有什么不同

  23. 后臺(tái)進(jìn)程有什么特點(diǎn),如果要你設(shè)計(jì)一個(gè)進(jìn)程是后臺(tái)進(jìn)程,你會(huì)考慮什么

  24. 僵尸進(jìn)程是什么,如果產(chǎn)生一個(gè)僵尸進(jìn)程,如何查找僵尸進(jìn)程

  25. 孤兒進(jìn)程是什么

  26. 一個(gè)進(jìn)程有20個(gè)線程,在某個(gè)線程中調(diào)用fork,新的進(jìn)程會(huì)有20個(gè)線程嗎?

  27. tcp/ip 流量控制和擁塞控制

  28. 301/302有什么區(qū)別?應(yīng)用上有什么異同。

  29. 50X相關(guān)錯(cuò)誤碼的內(nèi)涵是什么?

  30. close wait和time wait是什么?如何排查?有什么意義?

  31. http req和resp的中數(shù)據(jù)有哪些

  32. 什么是連接的半打開,半關(guān)閉狀態(tài)

  33. 假如一個(gè)業(yè)務(wù)依賴單點(diǎn)redis,此redis故障將導(dǎo)致業(yè)務(wù)不可用,如何改進(jìn)

  34. redis sharding有哪些做法

  35. 當(dāng)大量數(shù)據(jù)要求用redis保存,單機(jī)單點(diǎn)難以滿足需要,設(shè)計(jì)(換尋找)一個(gè)負(fù)載均衡的方案

  36. 當(dāng)redis 采用hash做sharding,現(xiàn)在有8個(gè)節(jié)點(diǎn),負(fù)載方案是 pos = hash(key) % 8,然后保存在pos節(jié)點(diǎn)上。這樣做有什么好處壞處?當(dāng)8個(gè)節(jié)點(diǎn)要擴(kuò)充到10個(gè)節(jié)點(diǎn),應(yīng)該怎么辦?有什么更方便擴(kuò)充的方案嗎?(一致性hash, presharding)

  37. 如何保證redis和數(shù)據(jù)庫數(shù)據(jù)的一致性。比如用戶名既保存在數(shù)據(jù)庫,又保存在redis做緩存。有如下操作 update_db(username); update_redis(username)。但是執(zhí)行update_db后故障,update_redis沒有執(zhí)行。有什么簡(jiǎn)單辦法解決這個(gè)問題。

BATJ頭條、滴滴面試問題總結(jié),面試完整理的答案共享。
需要可以直接點(diǎn)擊【 石墨文檔 】領(lǐng)取面試答案!

滴滴篇

  1. B+樹、B-樹的區(qū)別?

  2. 數(shù)據(jù)庫隔離級(jí)別,幻讀和不可重復(fù)讀的區(qū)別?

  3. 有hell, well, hello, world等字符串組,現(xiàn)在問能否拼接成helloworld,代碼實(shí)現(xiàn)。

  4. 快排算法實(shí)現(xiàn)

  5. 線程安全的單例模式

  6. 25匹馬賽跑,有一個(gè)賽場(chǎng),只有五個(gè)賽道,沒有計(jì)時(shí)器,只能通過目測(cè)來記錄快慢,求出第三3快的馬要多少場(chǎng)比賽?

  7. kmp算法next數(shù)組的求解思路

  8. 數(shù)組中有三個(gè)數(shù)字出現(xiàn)超過3/4,求這三個(gè)數(shù)字?

  9. 1到n+2個(gè)數(shù)組中缺了兩個(gè)數(shù),如何用O(n)時(shí)間,O(1)空間找到這兩個(gè)數(shù)字。

  10. 一條線段長(zhǎng)為1,隨機(jī)選兩個(gè)點(diǎn),將改線段分為三段,三段能成三角形的概率是多少?

  11. 有一個(gè)教授,他三個(gè)學(xué)生,腦袋背后分別各寫了一個(gè)數(shù)字,其中一個(gè)數(shù)字是另外兩個(gè)數(shù)字的和,經(jīng)過幾輪后,有一個(gè)學(xué)生猜出了自己的數(shù)字請(qǐng)問是什么原因?

  12. B+樹做索引時(shí),B+樹通常高度為多少層?要參考哪些條件?

京東篇

  1. 一般sql注入怎么發(fā)現(xiàn)觸點(diǎn)的,從源碼闡述sqlmap如何測(cè)試注入點(diǎn)的。

  2. masscan掃描端口時(shí)靠什么檢測(cè),為什么這么快? 請(qǐng)?jiān)斒?

  3. 你寫過哪些小工具,你為你使用過的工具做過什么修改.

  4. 如何提高采用python編寫的掃描速度,談?wù)剬?duì)GIL鎖的了解.

  5. 你覺得你發(fā)現(xiàn)的那個(gè)漏洞影響比較大.

  6. 常見的web漏洞有哪些.

  7. 有沒有玩過硬件安全,研究程度如何.

  8. 反爬蟲,如果是你如何進(jìn)行反爬蟲,如何繞過反爬措施。使用無頭瀏覽器被檢測(cè)到了,如何繞過

  9. nmap掃描如何進(jìn)行掃描。發(fā)包與協(xié)議,握手和不握手,哪些協(xié)議握手,哪些不握手. 如何不直接接觸目標(biāo)服務(wù)器探測(cè)對(duì)方端口是否開放

  10. 有沒有自己編寫過yara掃描模塊,如果要解決掃描{k1:v1, k2:v2, k3:v3} ,保證同時(shí)在k1中的v1里出現(xiàn)特定值,k2中出現(xiàn)v2特定值,以及k3,v3。怎么實(shí)現(xiàn)

  11. xss什么原理,如何自己實(shí)現(xiàn)一個(gè)beef類似的xss平臺(tái). 既然這樣實(shí)現(xiàn),面臨的跨域如何解決?

  12. ip 頻率限制, ip信譽(yù)度模型?

  13. SCTP協(xié)議是什么?如何使用 SCTP 優(yōu)化網(wǎng)絡(luò)?

mysql篇

  • 1 主鍵 超鍵 候選鍵 外鍵
  • 2 數(shù)據(jù)庫事務(wù)的四個(gè)特性及含義
  • 3 視圖的作用,視圖可以更改么?
  • 4 drop,delete與truncate的區(qū)別
  • 5 索引的工作原理及其種類
  • 6 連接的種類
  • 7 數(shù)據(jù)庫范式
  • 8 數(shù)據(jù)庫優(yōu)化的思路
  • 9 存儲(chǔ)過程與觸發(fā)器的區(qū)別

redis篇

  • 1 使用Redis有哪些好處?
  • 2 redis相比memcached有哪些優(yōu)勢(shì)?
  • 3 redis常見性能問題和解決方案
  • 4 MySQL里有2000w數(shù)據(jù),redis中只存20w的數(shù)據(jù),如何保證redis中的數(shù)據(jù)都是熱點(diǎn)數(shù)據(jù)
  • 5 Memcache與Redis的區(qū)別都有哪些?
  • 6 Redis 常見的性能問題都有哪些?如何解決?
  • 7 redis 最適合的場(chǎng)景
  • 8 Redis的同步機(jī)制了解么?
  • 9 是否使用過Redis集群,集群的原理是什么?
  • 10 redis集群如何保證一致性?

MongoDB篇

  • 1 什么是MongoDB?
  • 2 MongoDB是由哪種語言寫的?
  • 3 MongoDB的優(yōu)勢(shì)有哪些?
  • 4 什么是數(shù)據(jù)庫?
  • 5 什么是集合?
  • 6 什么是文檔?
  • 7 MongoDB和關(guān)系型數(shù)據(jù)庫術(shù)語對(duì)比圖
  • 8 什么是“mongod”?
  • 9 “mongod”參數(shù)有什么?
  • 10 什么是“mongo”?
  • 11 MongoDB哪個(gè)命令可以切換數(shù)據(jù)庫?
  • 12 什么是非關(guān)系型數(shù)據(jù)庫?
  • 13 非關(guān)系型數(shù)據(jù)庫有哪些類型?
  • 14 為什么用MOngoDB?
  • 15 在哪些場(chǎng)景使用MongoDB?
  • 16 MongoDB中的命名空間是什么意思?
  • 17 哪些語言支持MongoDB?
  • 18 在MongoDB中如何創(chuàng)建一個(gè)新的數(shù)據(jù)庫?
  • 19 在MongoDB中如何查看數(shù)據(jù)庫列表?
  • 20 MongoDB中的分片是什么意思?
  • 21 如何查看使用MongoDB的連接?
  • 22 什么是復(fù)制?
  • 23 在MongoDB中如何在集合中插入一個(gè)文檔?
  • 24 在MongoDB中如何除去一個(gè)數(shù)據(jù)庫?
  • 25 在MongoDB中如何創(chuàng)建一個(gè)集合?
  • 26 在MongoDB中如何查看一個(gè)已經(jīng)創(chuàng)建的集合?
  • 27 在MongoDB中如何刪除一個(gè)集合?
  • 28 為什么要在MongoDB中使用分析器?
  • 29 MongoDB支持主鍵外鍵關(guān)系嗎?
  • 30 MongoDB支持哪些數(shù)據(jù)類型?
  • 31 為什么要在MongoDB中用"Code"數(shù)據(jù)類型?
  • 32 為什么要在MongoDB中用"Regular Expression"數(shù)據(jù)類型?
  • 33 為什么在MongoDB中使用"Object ID"數(shù)據(jù)類型?
  • 34 如何在集合中插入一個(gè)文檔?
  • 35 “ObjectID”有哪些部分組成?
  • 36 在MongoDb中什么是索引?
  • 37 如何添加索引?
  • 38 MongoDB有哪些可替代產(chǎn)品?
  • 39 如何查詢集合中的文檔?
  • 40 用什么方法可以格式化輸出結(jié)果?
  • 41 如何使用"AND"或"OR"條件循環(huán)查詢集合中的文檔?
  • 42 在MongoDB中如何更新數(shù)據(jù)?
  • 43 如何刪除文檔?
  • 44 在MongoDB中如何排序?
  • 45 什么是聚合?
  • 46 在MongoDB中什么是副本集?
  • 47 Mongodb存儲(chǔ)特性與內(nèi)部原理?

Zookeeper篇

  • 1 zookeeper是什么?
  • 2 zookeeper提供了什么?
  • 3 zookeeper文件系統(tǒng)
  • 4 zookeeper的四種類型的znode
  • 5 zookeeper通知機(jī)制
  • 6 zookeeper有哪些應(yīng)用場(chǎng)景?
  • 7 zk的命名服務(wù)
  • 8 zk的配置管理服務(wù)
  • 9 zk的集群管理
  • 10 zk的分布式鎖
  • 11 zk隊(duì)列管理
  • 12 zk數(shù)據(jù)復(fù)制
  • 13 zk的工作原理
  • 14 zk是如何保證事物的順序一致性
  • 15 zk集群下server工作狀態(tài)
  • 16 zk是如何選舉Leader的?
  • 17 zk同步流程
  • 18 分布式通知和協(xié)調(diào)
  • 19 zk的session機(jī)制

nginx篇

  • 1 請(qǐng)解釋一下什么是Nginx?
  • 2 請(qǐng)列舉Nginx的一些特性?
  • 3 請(qǐng)列舉Nginx和Apache 之間的不同點(diǎn)?
  • 4 請(qǐng)解釋Nginx如何處理HTTP請(qǐng)求。
  • 5 在Nginx中,如何使用未定義的服務(wù)器名稱來阻止處理請(qǐng)求?
  • 6 使用“反向代理服務(wù)器”的優(yōu)點(diǎn)是什么?
  • 7 請(qǐng)列舉Nginx服務(wù)器的最佳用途。
  • 8 請(qǐng)解釋Nginx服務(wù)器上的Master和Worker進(jìn)程分別是什么?
  • 9 請(qǐng)解釋你如何通過不同于80的端口開啟Nginx?
  • 10 請(qǐng)解釋是否有可能將Nginx的錯(cuò)誤替換為502錯(cuò)誤、503?
  • 11 在Nginx中,解釋如何在URL中保留雙斜線?
  • 12 請(qǐng)解釋ngx_http_upstream_module的作用是什么?
  • 13 請(qǐng)解釋什么是C10K問題,后來是怎么解決的?
  • 14 請(qǐng)陳述stub_status和sub_filter指令的作用是什么?
  • 15 解釋Nginx是否支持將請(qǐng)求壓縮到上游?
  • 16 解釋如何在Nginx中獲得當(dāng)前的時(shí)間?
  • 17 用Nginx服務(wù)器解釋-s的目的是什么?
  • 18 解釋如何在Nginx服務(wù)器上添加模塊?
  • 19 nginx中多個(gè)work進(jìn)程是如何監(jiān)聽同一個(gè)端口的?如何處理客戶連接的驚群?jiǎn)栴}?
  • 20 nginx程序的熱更新是如何做的?

BATJ頭條、滴滴面試問題總結(jié),面試完整理的答案共享。

需要可以直接點(diǎn)擊【 石墨文檔 】領(lǐng)取面試答案!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容