阿里篇
如何實(shí)現(xiàn)一個(gè)高效的單向鏈表逆序輸出?
已知sqrt(2)約等于1.414,要求不用數(shù)學(xué)庫,求sqrt(2)精確到小數(shù)點(diǎn)后10位
給定一個(gè)二叉搜索樹(BST),找到樹中第 K 小的節(jié)點(diǎn)
LRU緩存機(jī)制
關(guān)于epoll和select的區(qū)別,以下哪些說法是正確的
從innodb的索引結(jié)構(gòu)分析,為什么索引的 key 長(zhǎng)度不能太長(zhǎng)
MySQL的數(shù)據(jù)如何恢復(fù)到任意時(shí)間點(diǎn)?
NFS 和 SMB 是最常見的兩種 NAS(Network Attached Storage)協(xié)議,當(dāng)把一個(gè)文件系統(tǒng)同時(shí)通過 NFS 和 SMB 協(xié)議共享給多個(gè)主機(jī)訪問時(shí),以下哪些說法是錯(cuò)誤的
輸入 ping IP 后敲回車,發(fā)包前會(huì)發(fā)生什么?
請(qǐng)解釋下為什么鹿晗發(fā)布戀情的時(shí)候,微博系統(tǒng)會(huì)崩潰,如何解決?
現(xiàn)有一批郵件需要發(fā)送給訂閱顧客,且有一個(gè)集群(集群的節(jié)點(diǎn)數(shù)不定,會(huì)動(dòng)態(tài)擴(kuò)容縮容)來負(fù)責(zé)具體的郵件發(fā)送任務(wù),如何讓系統(tǒng)盡快地完成發(fā)送?
有一批氣象觀測(cè)站,現(xiàn)需要獲取這些站點(diǎn)的觀測(cè)數(shù)據(jù),并存儲(chǔ)到 Hive 中。但是氣象局只提供了 api 查詢,每次只能查詢單個(gè)觀測(cè)點(diǎn)。那么如果能夠方便快速地獲取到所有的觀測(cè)點(diǎn)的數(shù)據(jù)?
如何實(shí)現(xiàn)兩金額數(shù)據(jù)相加(最多小數(shù)點(diǎn)兩位)
關(guān)于并行計(jì)算的一些基礎(chǔ)開放問題
請(qǐng)計(jì)算XILINX公司VU9P芯片的算力相當(dāng)于多少TOPS,給出計(jì)算過程與公式
一顆現(xiàn)代處理器,每秒大概可以執(zhí)行多少條簡(jiǎn)單的MOV指令,有哪些主要的影響因素
請(qǐng)分析 MaxCompute 產(chǎn)品與分布式技術(shù)的關(guān)系、當(dāng)前大數(shù)據(jù)計(jì)算平臺(tái)類產(chǎn)品的市場(chǎng)現(xiàn)狀和發(fā)展趨勢(shì)
對(duì)大數(shù)據(jù)平臺(tái)中的元數(shù)據(jù)管理是怎么理解的,元數(shù)據(jù)收集管理體系是怎么樣的,會(huì)對(duì)大數(shù)據(jù)應(yīng)用有什么樣的影響
你理解常見如阿里,和友商大數(shù)據(jù)平臺(tái)的技術(shù)體系差異以及發(fā)展趨勢(shì)和技術(shù)瓶頸,在存儲(chǔ)和計(jì)算兩個(gè)方面進(jìn)行概述
在云計(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í)和公平性
最大頻率棧
給定一個(gè)鏈表,刪除鏈表的倒數(shù)第N個(gè)節(jié)點(diǎn),并且返回鏈表的頭結(jié)點(diǎn)
如果讓你設(shè)計(jì)一個(gè)通用的、支持各種數(shù)據(jù)庫秒級(jí)備份和恢復(fù)的系統(tǒng),你會(huì)如何設(shè)計(jì)
如果讓你來設(shè)計(jì)一個(gè)支持?jǐn)?shù)據(jù)庫、NOSQL 和大數(shù)據(jù)之間數(shù)據(jù)實(shí)時(shí)流動(dòng)的數(shù)據(jù)流及處理的系統(tǒng),你會(huì)考慮哪些問題?如何設(shè)計(jì)?
給定一個(gè)整數(shù)數(shù)組和一個(gè)整數(shù),返回兩個(gè)數(shù)組的索引,這兩個(gè)索引指向的數(shù)字的加和等于指定的整數(shù)。需要最優(yōu)的算法,分析算法的空間和時(shí)間復(fù)雜度
假如給你一個(gè)新產(chǎn)品,你將從哪些方面來保障它的質(zhì)量?
請(qǐng)?jiān)u估一下程序的執(zhí)行結(jié)果?


華為篇
static有什么用途?(請(qǐng)至少說明兩種)
引用與指針有什么區(qū)別?
描述實(shí)時(shí)系統(tǒng)的基本特性
全局變量和局部變量在內(nèi)存中是否有區(qū)別?如果有,是什么區(qū)別?
什么是平衡二叉樹?
堆棧溢出一般是由什么原因?qū)е碌模?/p>
什么函數(shù)不能聲明為虛函數(shù)?
冒泡排序算法的時(shí)間復(fù)雜度是什么?
寫出float x 與“零值”比較的if語句
Internet采用哪種網(wǎng)絡(luò)協(xié)議?該協(xié)議的主要層次結(jié)構(gòu)?
Internet物理地址和IP地址轉(zhuǎn)換采用什么協(xié)議?
IP地址的編碼分為哪倆部分?
用戶輸入M,N值,從1至N開始順序循環(huán)數(shù)數(shù),每數(shù)到M輸出該數(shù)值,直至全部輸出。寫出C程序。
不能做switch()的參數(shù)類型是
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)。
寫一個(gè)程序, 要求功能:求出用1,2,5這三個(gè)數(shù)不同個(gè)數(shù)組合的和為100的組合個(gè)數(shù)
實(shí)現(xiàn)一個(gè)函數(shù),把一個(gè)字符串中的字符從小寫轉(zhuǎn)為大寫
隨機(jī)輸入一個(gè)數(shù),判斷它是不是對(duì)稱數(shù)(回文數(shù))(如3,121,12321,45254)。不能用字符串庫函數(shù)
求2~2000的所有素?cái)?shù).有足夠的內(nèi)存,要求盡量快
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)。
將單向鏈表reverse,如ABCD變成DCBA,只能搜索鏈表一次。
將二叉樹的兩個(gè)孩子換位置,即左變右,右變左。不能用遞規(guī)。
以下屬于物理層的設(shè)備是?
在以太網(wǎng)中,是根據(jù)()地址來區(qū)分不同的設(shè)備的?
以下為傳輸層協(xié)議的是?
以下對(duì)MAC地址描述正確的是?
以下屬于數(shù)據(jù)鏈路層功能的是?
IEEE802.3u標(biāo)準(zhǔn)是指?
如果要將兩計(jì)算機(jī)通過雙絞線直接連接,正確的線序是?
在V.35和V.24規(guī)程中,控制信號(hào)RTS表示?
路由器作為網(wǎng)絡(luò)互連設(shè)備,必須具備以下哪些特點(diǎn)?
路由器的作用有?
調(diào)用上一條歷史命令的快捷鍵是?
交換機(jī)工作在OSI七層的哪一層?
以下對(duì)CSMA/CD描述正確的是?
以下對(duì)STORE ANDFORWARD描述正確的是?
以下對(duì)交換機(jī)工作方式描述正確的是?
VLAN的主要作用有?
在交換機(jī)中用戶權(quán)限分為幾個(gè)級(jí)別?
在路由器的配置過程中查詢以S開頭所有命令的方法是?
第一次配置路由器時(shí)可以使用的方法為?
在何種狀態(tài)下可以為路由器改名?
某公司申請(qǐng)到一個(gè)C類IP地址,但要連接6個(gè)的子公司,最大的一個(gè)子公司有 26臺(tái)計(jì)算機(jī),每個(gè)子公司在一個(gè)網(wǎng)段中,則子網(wǎng)掩碼應(yīng)設(shè)為?
與10.110.12.29mask 255.255.255.224屬于同一網(wǎng)段的主機(jī)IP地址是?
ARP協(xié)議的作用是?
當(dāng)路由器接收的IP報(bào)文的TTL值等于1時(shí),采取的策略是?
在NetWare 網(wǎng)絡(luò)中,客戶需要訪問某個(gè)類型的服務(wù)器時(shí),首先要發(fā)送一個(gè) ()廣播報(bào)文來尋找服務(wù)器?
IPX地址網(wǎng)絡(luò)地址有( )個(gè)字節(jié)?
對(duì)于幀中繼描述正確的是?
對(duì)于INVERSE ARP的描述正確的是?
百度篇
在函數(shù)內(nèi)定義一個(gè)字符數(shù)組,用gets函數(shù)輸入字符串的時(shí)候,如果輸入越界,為什么程序會(huì)崩潰?
C++中引用與指針的區(qū)別
C/C++程序的內(nèi)存分區(qū)
快速排序的思想、時(shí)間復(fù)雜度、實(shí)現(xiàn)以及優(yōu)化方法
IO模型——IO多路復(fù)用機(jī)制?
常用的Linux命令
C中變量的存儲(chǔ)類型有哪些?
動(dòng)態(tài)規(guī)劃的本質(zhì)
實(shí)踐中如何優(yōu)化MySQL?
什么情況下設(shè)置了索引但無法使用?
SQL語句的優(yōu)化
數(shù)據(jù)庫索引的底層實(shí)現(xiàn)原理和優(yōu)化
HTTP和HTTPS的主要區(qū)別?
如何設(shè)計(jì)一個(gè)高并發(fā)的系統(tǒng)?
兩條相交的單向鏈表,如何求他們的第一個(gè)公共節(jié)點(diǎn)?
求單向局部循環(huán)鏈表的環(huán)入口?
IP地址如何在數(shù)據(jù)庫中存儲(chǔ)?
new/delete和malloc/free的底層實(shí)現(xiàn)?
overload、override、overwrite的介紹?
小端/大端機(jī)器?
守護(hù)進(jìn)程
多線程的優(yōu)缺點(diǎn)
長(zhǎng)連接與短連接
二分圖應(yīng)用于最佳匹配問題(游客對(duì)房間的滿意度之和最大問題)
class與struct的區(qū)別?
虛函數(shù)和純虛函數(shù)
menset()函數(shù)
實(shí)現(xiàn)一個(gè)函數(shù),對(duì)一個(gè)正整數(shù)n,算得到1需要的最少操作次數(shù)。操作規(guī)則為:如果n為偶數(shù),將其除以2;如果n為奇數(shù),可以加1或減1;一直處理下去。
找到滿足條件的數(shù)組
一個(gè)大的含有50M個(gè)URL的記錄,一個(gè)小的含有500個(gè)URL的記錄,找出兩個(gè)記錄里相同的URL
海量日志數(shù)據(jù),提取出某日訪問百度次數(shù)最多的那個(gè)IP
有10個(gè)文件,每個(gè)文件1G,每個(gè)文件的每一行都存放的是用戶的query,每個(gè)文件的query都可能重復(fù)。如何按照query的頻度排序?
螞蟻爬桿問題
當(dāng)在瀏覽器中輸入一個(gè)url后回車,后臺(tái)發(fā)生了什么?比如輸入url后,你看到了百度的首頁,那么這一切是如何發(fā)生的呢?
判斷兩棵樹是否相等,請(qǐng)實(shí)現(xiàn)兩棵樹是否相等的比較,相等返回1,否則返回其他值,并說明算法復(fù)雜度
三個(gè)警察和三個(gè)囚徒的過河問題
從300萬字符串中找到最熱門的10條
如何找出字典中的兄弟單詞。給定一個(gè)單詞a,如果通過交換單詞中字母的順序可以得到另外的單詞b,那么定義b是a的兄弟單詞。現(xiàn)在給定一個(gè)字典,用戶輸入一個(gè)單詞,如何根據(jù)字典找出這個(gè)單詞有多少個(gè)兄弟單詞?
找出數(shù)組中出現(xiàn)次數(shù)超過一半的數(shù),現(xiàn)在有一個(gè)數(shù)組,已知一個(gè)數(shù)出現(xiàn)的次數(shù)超過了一半,請(qǐng)用O(n)的復(fù)雜度的算法找出這個(gè)數(shù)。
找出被修改過的數(shù)字
設(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萬,等等)
找出給定字符串對(duì)應(yīng)的序號(hào)
找出第k大的數(shù)字所在的位置。寫一段程序,找出數(shù)組中第k大小的數(shù),輸出數(shù)所在的位置。例如{2,4,3,4,7}中,第一大的數(shù)是7,位置在4。第二大、第三大的數(shù)都是4,位置在1、3隨便輸出哪一個(gè)均可。
給40億個(gè)不重復(fù)的unsigned int的整數(shù),沒排過序的,然后再給幾個(gè)數(shù),如何快速判斷這幾個(gè)數(shù)是否在那40億個(gè)數(shù)當(dāng)中?
在一個(gè)文件中有10G個(gè)整數(shù),亂序排列,要求找出中位數(shù)。內(nèi)存限制為2G。
時(shí)分秒針在一天之類重合多少次?(24小時(shí))
將多個(gè)集合合并成沒有交集的集合。
平面內(nèi)有11個(gè)點(diǎn),由它們連成48條不同的直線,由這些點(diǎn)可連成多少個(gè)三角形?
騰訊篇
Java基礎(chǔ)
JAVA中的幾種基本數(shù)據(jù)類型是什么,各自占用多少字節(jié)。
String類能被繼承嗎,為什么。
String,Stringbuffer,StringBuilder的區(qū)別。
ArrayList和LinkedList有什么區(qū)別。
講講類的實(shí)例化順序,比如父類靜態(tài)數(shù)據(jù),構(gòu)造函數(shù),字段,子類靜態(tài)數(shù)據(jù),構(gòu)造函數(shù),字段,當(dāng)new的時(shí)候,他們的執(zhí)行順序。
用過哪些Map類,都有什么區(qū)別,HashMap是線程安全的嗎,并發(fā)下使用的Map是什么,他們內(nèi)部原理分別是什么,比如存儲(chǔ)方式,hashcode,擴(kuò)容,默認(rèn)容量等。
JAVA8的ConcurrentHashMap為什么放棄了分段鎖,有什么問題嗎,如果你來設(shè)計(jì),你如何設(shè)計(jì)。
有沒有有順序的Map實(shí)現(xiàn)類,如果有,他們是怎么保證有序的。
抽象類和接口的區(qū)別,類可以繼承多個(gè)類么,接口可以繼承多個(gè)接口么,類可以實(shí)現(xiàn)多個(gè)接口么。
繼承和聚合的區(qū)別在哪。
IO模型有哪些,講講你理解的nio ,他和bio,aio的區(qū)別是啥,談?wù)剅eactor模型。
反射的原理,反射創(chuàng)建類實(shí)例的三種方式是什么。
反射中,Class.forName和ClassLoader區(qū)別 。
描述動(dòng)態(tài)代理的幾種實(shí)現(xiàn)方式,分別說出相應(yīng)的優(yōu)缺點(diǎn)。
動(dòng)態(tài)代理與cglib實(shí)現(xiàn)的區(qū)別。
為什么CGlib方式可以對(duì)接口實(shí)現(xiàn)代理。
final的用途。
寫出三種單例模式實(shí)現(xiàn) 。
如何在父類中為子類自動(dòng)完成所有的hashcode和equals實(shí)現(xiàn)?這么做有何優(yōu)劣。
請(qǐng)結(jié)合OO設(shè)計(jì)理念,談?wù)勗L問修飾符public、private、protected、default在應(yīng)用設(shè)計(jì)中的作用。
深拷貝和淺拷貝區(qū)別。
數(shù)組和鏈表數(shù)據(jù)結(jié)構(gòu)描述,各自的時(shí)間復(fù)雜度。
error和exception的區(qū)別,CheckedException,RuntimeException的區(qū)別。
請(qǐng)列出5個(gè)運(yùn)行時(shí)異常。
在自己的代碼中,如果創(chuàng)建一個(gè)java.lang.String類,這個(gè)類是否可以被類加載器加載?為什么。
說一說你對(duì)java.lang.Object對(duì)象中hashCode和equals方法的理解。在什么場(chǎng)景下需要重新實(shí)現(xiàn)這兩個(gè)方法。
在jdk1.5中,引入了泛型,泛型的存在是用來解決什么問題。
這樣的a.hashcode() 有什么用,與a.equals(b)有什么關(guān)系。
有沒有可能2個(gè)不相等的對(duì)象有相同的hashcode。
Java中的HashSet內(nèi)部是如何工作的。
什么是序列化,怎么序列化,為什么序列化,反序列化會(huì)遇到什么問題,如何解決。
java8的新特性。

JVM
什么情況下會(huì)發(fā)生棧內(nèi)存溢出。
JVM的內(nèi)存結(jié)構(gòu),Eden和Survivor比例。
JVM內(nèi)存為什么要分成新生代,老年代,持久代。新生代中為什么要分為Eden和Survivor。
JVM中一次完整的GC流程是怎樣的,對(duì)象如何晉升到老年代,說說你知道的幾種主要的JVM參數(shù)。
你知道哪幾種垃圾收集器,各自的優(yōu)缺點(diǎn),重點(diǎn)講下cms和G1,包括原理,流程,優(yōu)缺點(diǎn)。
垃圾回收算法的實(shí)現(xiàn)原理。
當(dāng)出現(xiàn)了內(nèi)存溢出,你怎么排錯(cuò)。
JVM內(nèi)存模型的相關(guān)知識(shí)了解多少,比如重排序,內(nèi)存屏障,happen-before,主內(nèi)存,工作內(nèi)存等。
簡(jiǎn)單說說你了解的類加載器,可以打破雙親委派么,怎么打破。
講講JAVA的反射機(jī)制。
你們線上應(yīng)用的JVM參數(shù)有哪些。
g1和cms區(qū)別,吞吐量?jī)?yōu)先和響應(yīng)優(yōu)先的垃圾收集器選擇。
怎么打出線程棧信息。

開源框架
簡(jiǎn)單講講tomcat結(jié)構(gòu),以及其類加載器流程,線程模型等。
tomcat如何調(diào)優(yōu),涉及哪些參數(shù) 。
講講Spring加載流程。
Spring AOP的實(shí)現(xiàn)原理。
講講Spring事務(wù)的傳播屬性。
Spring如何管理事務(wù)的。
Spring怎么配置事務(wù)(具體說出一些關(guān)鍵的xml 元素)。
說說你對(duì)Spring的理解,非單例注入的原理?它的生命周期?循環(huán)注入的原理,aop的實(shí)現(xiàn)原理,說說aop中的幾個(gè)術(shù)語,它們是怎么相互工作的。
Springmvc 中DispatcherServlet初始化過程。
netty的線程模型,netty如何基于reactor模型上實(shí)現(xiàn)的。
為什么選擇netty。
什么是TCP粘包,拆包。解決方式是什么。
netty的fashwheeltimer的用法,實(shí)現(xiàn)原理,是否出現(xiàn)過調(diào)用不夠準(zhǔn)時(shí),怎么解決。
netty的心跳處理在弱網(wǎng)下怎么辦。
netty的通訊協(xié)議是什么樣的。
springmvc用到的注解,作用是什么,原理。
springboot啟動(dòng)機(jī)制。
操作系統(tǒng)
Linux系統(tǒng)下你關(guān)注過哪些內(nèi)核參數(shù),說說你知道的。
Linux下IO模型有幾種,各自的含義是什么。
epoll和poll有什么區(qū)別。
平時(shí)用到哪些Linux命令。
用一行命令查看文件的最后五行。
用一行命令輸出正在運(yùn)行的java進(jìn)程。
介紹下你理解的操作系統(tǒng)中線程切換過程。
進(jìn)程和線程的區(qū)別。
top 命令之后有哪些內(nèi)容,有什么作用。
線上CPU爆高,請(qǐng)問你如何找到問題所在。

美團(tuán)篇
java虛擬機(jī)內(nèi)存模型
內(nèi)存溢出一般發(fā)生在哪個(gè)區(qū)?永久代會(huì)不會(huì)導(dǎo)致內(nèi)存溢出?
動(dòng)態(tài)加載類的框架了解哪些?
動(dòng)態(tài)代理一般有哪幾種實(shí)現(xiàn)方式?動(dòng)態(tài)代理的應(yīng)用場(chǎng)景有哪些?
棧會(huì)不會(huì)溢出?棧溢出一般拋什么異常?jvm在哪里設(shè)置棧的大?。吭O(shè)置的參數(shù)是什么?
用過哪些命令查看jvm的狀態(tài)、堆棧信息?
jvm的垃圾回收機(jī)制?
java類加載機(jī)制?如何實(shí)現(xiàn)自定義類加載器?findClass與loadClass的區(qū)別?
String、StringBuffer、StringBuilder的區(qū)別?對(duì)應(yīng)的使用場(chǎng)景?
如何實(shí)現(xiàn)不可變的類?
淺復(fù)制和深復(fù)制?怎樣實(shí)現(xiàn)深復(fù)制?
HashMap、HashTable、ConcurrentHashMap的區(qū)別?
CAS是一種什么樣的同步機(jī)制?
NIO的原理,包括哪幾個(gè)組件?
簡(jiǎn)單介紹一下java的反射機(jī)制?反射在哪些地方有應(yīng)用場(chǎng)景?
spring加載bean的流程?
java線程池?線程池構(gòu)造函數(shù)的幾個(gè)參數(shù)含義?keepAliveTime解釋一下?
一個(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)景?
CountDownLatch和CyclicBarrier的區(qū)別?
線程加鎖有哪些方式?synchronized和lock的區(qū)別?
volatile關(guān)鍵字的作用?為什么使用AtomicLong而不使用Long?AtomicLong的底層是怎么實(shí)現(xiàn)的?
22.. mysql的存儲(chǔ)引擎有哪幾種?
sql優(yōu)化有哪些著手點(diǎn)?組合索引的最左前綴原則的含義?
springmvc處理請(qǐng)求的流程?
spring的事務(wù)怎么使用?事務(wù)回滾?自定義異常?
臟讀?幻讀?
tcp四次揮手的過程?TIME_WAIT為什么至少設(shè)置兩倍的MSL時(shí)間?
get和post請(qǐng)求的區(qū)別?
cookie和session的請(qǐng)求?
了解哪些開源的中間件?緩存?消息?分布式框架?
用到過哪些設(shè)計(jì)模式?單例模式的實(shí)現(xiàn)?
數(shù)據(jù)庫的事務(wù)實(shí)現(xiàn)原理、操作過程、如何做到事物之間的獨(dú)立性等問題
數(shù)據(jù)庫的臟讀,幻讀,不可重復(fù)讀出現(xiàn)的原因原理,解決辦法
數(shù)據(jù)庫的隔離級(jí)別、MVCC
樂觀鎖、悲觀鎖、互斥鎖、讀寫鎖的原理實(shí)現(xiàn)與區(qū)別
線程的生命周期
一致性hash算法原理與應(yīng)用
CAP原則
CAS操作
分布式raft算法

頭條篇
5個(gè)人去一個(gè)海島尋寶,最后一共找到了100枚金幣。他們約定了一個(gè)分配方案。
給你一個(gè)有序整數(shù)數(shù)組,數(shù)組中的數(shù)可以是正數(shù)、負(fù)數(shù)、零,請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),這個(gè)函數(shù)返回一個(gè)整數(shù):返回這個(gè)數(shù)組所有數(shù)的平方值中有多少種不同的取值。
一個(gè)環(huán)有10個(gè)節(jié)點(diǎn),編號(hào)0-9。從0點(diǎn)出發(fā),走N步又能回到0點(diǎn),共有多少種走法?
一個(gè)亂序數(shù)組,求第K大的數(shù)。排序方式使用字典序。
一棵二叉樹,求最大通路長(zhǎng)度。(即最大左右子樹高度之和)
進(jìn)程和線程的區(qū)別,使用線程真的能節(jié)省時(shí)間?
go協(xié)程的調(diào)度方式,使用協(xié)程真的能節(jié)省時(shí)間?
水平觸發(fā)邊沿觸發(fā)的區(qū)別?在邊沿觸發(fā)下,一個(gè)socket有500的數(shù)據(jù),已讀取200然后不再處理,是不是剩下的300就永遠(yuǎn)無法讀取?
有函數(shù)如下,輸入1,返回什么?
設(shè)計(jì)http協(xié)議,A端發(fā)送 AAAA,至少讓B端知道AAAA已發(fā)送完成。
流量總?cè)肟跒閍pi_gateway,api_gateway掛了會(huì)導(dǎo)致全部掛掛,用什么機(jī)制增大可用性?
mysql為什么要用b+樹,不用平衡二叉樹做索引結(jié)構(gòu)?
創(chuàng)建數(shù)據(jù)庫索引應(yīng)該怎么考慮?
使用int 做primary key和使用string 有什么優(yōu)劣?
數(shù)據(jù)庫分表的方法?
表結(jié)構(gòu),訂單紀(jì)錄如下,寫一個(gè)語句,求賣的最好的 top 10 product_id。
微服務(wù),A服務(wù)請(qǐng)求B服務(wù)B1接口,B1接口又請(qǐng)求A服務(wù)A2接口。會(huì)不會(huì)有問題?
不使用高級(jí)工具,只使用Linux自帶的工具,你會(huì)如何debug?
如何預(yù)估一個(gè)mysql語句的性能?
go函數(shù)中,返回值未命名,發(fā)生了panic,但是在函數(shù)內(nèi)recover了。函數(shù)返回什么值?
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á)?
free -h,buffers 和cached有什么不同
后臺(tái)進(jìn)程有什么特點(diǎn),如果要你設(shè)計(jì)一個(gè)進(jìn)程是后臺(tái)進(jìn)程,你會(huì)考慮什么
僵尸進(jìn)程是什么,如果產(chǎn)生一個(gè)僵尸進(jìn)程,如何查找僵尸進(jìn)程
孤兒進(jìn)程是什么
一個(gè)進(jìn)程有20個(gè)線程,在某個(gè)線程中調(diào)用fork,新的進(jìn)程會(huì)有20個(gè)線程嗎?
tcp/ip 流量控制和擁塞控制
301/302有什么區(qū)別?應(yīng)用上有什么異同。
50X相關(guān)錯(cuò)誤碼的內(nèi)涵是什么?
close wait和time wait是什么?如何排查?有什么意義?
http req和resp的中數(shù)據(jù)有哪些
什么是連接的半打開,半關(guān)閉狀態(tài)
假如一個(gè)業(yè)務(wù)依賴單點(diǎn)redis,此redis故障將導(dǎo)致業(yè)務(wù)不可用,如何改進(jìn)
redis sharding有哪些做法
當(dāng)大量數(shù)據(jù)要求用redis保存,單機(jī)單點(diǎn)難以滿足需要,設(shè)計(jì)(換尋找)一個(gè)負(fù)載均衡的方案
當(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)
如何保證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)取面試答案!
滴滴篇
B+樹、B-樹的區(qū)別?
數(shù)據(jù)庫隔離級(jí)別,幻讀和不可重復(fù)讀的區(qū)別?
有hell, well, hello, world等字符串組,現(xiàn)在問能否拼接成helloworld,代碼實(shí)現(xiàn)。
快排算法實(shí)現(xiàn)
線程安全的單例模式
25匹馬賽跑,有一個(gè)賽場(chǎng),只有五個(gè)賽道,沒有計(jì)時(shí)器,只能通過目測(cè)來記錄快慢,求出第三3快的馬要多少場(chǎng)比賽?
kmp算法next數(shù)組的求解思路
數(shù)組中有三個(gè)數(shù)字出現(xiàn)超過3/4,求這三個(gè)數(shù)字?
1到n+2個(gè)數(shù)組中缺了兩個(gè)數(shù),如何用O(n)時(shí)間,O(1)空間找到這兩個(gè)數(shù)字。
一條線段長(zhǎng)為1,隨機(jī)選兩個(gè)點(diǎn),將改線段分為三段,三段能成三角形的概率是多少?
有一個(gè)教授,他三個(gè)學(xué)生,腦袋背后分別各寫了一個(gè)數(shù)字,其中一個(gè)數(shù)字是另外兩個(gè)數(shù)字的和,經(jīng)過幾輪后,有一個(gè)學(xué)生猜出了自己的數(shù)字請(qǐng)問是什么原因?
B+樹做索引時(shí),B+樹通常高度為多少層?要參考哪些條件?
京東篇
一般sql注入怎么發(fā)現(xiàn)觸點(diǎn)的,從源碼闡述sqlmap如何測(cè)試注入點(diǎn)的。
masscan掃描端口時(shí)靠什么檢測(cè),為什么這么快? 請(qǐng)?jiān)斒?
你寫過哪些小工具,你為你使用過的工具做過什么修改.
如何提高采用python編寫的掃描速度,談?wù)剬?duì)GIL鎖的了解.
你覺得你發(fā)現(xiàn)的那個(gè)漏洞影響比較大.
常見的web漏洞有哪些.
有沒有玩過硬件安全,研究程度如何.
反爬蟲,如果是你如何進(jìn)行反爬蟲,如何繞過反爬措施。使用無頭瀏覽器被檢測(cè)到了,如何繞過
nmap掃描如何進(jìn)行掃描。發(fā)包與協(xié)議,握手和不握手,哪些協(xié)議握手,哪些不握手. 如何不直接接觸目標(biāo)服務(wù)器探測(cè)對(duì)方端口是否開放
有沒有自己編寫過yara掃描模塊,如果要解決掃描{k1:v1, k2:v2, k3:v3} ,保證同時(shí)在k1中的v1里出現(xiàn)特定值,k2中出現(xiàn)v2特定值,以及k3,v3。怎么實(shí)現(xiàn)
xss什么原理,如何自己實(shí)現(xiàn)一個(gè)beef類似的xss平臺(tái). 既然這樣實(shí)現(xiàn),面臨的跨域如何解決?
ip 頻率限制, ip信譽(yù)度模型?
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)取面試答案!