春招大廠往這看

2019最新BAT、TMD等等公司技術面試題及其答案


Github的0Vice大神聯合眾多貢獻者,總結了2019年的眾多互聯網科技公司的面試題目,分享在Github的interview_internal_reference庫中,大家走過路過不要錯過。


目前,這份面試集錦已經在Github上獲得 21718 個Star,5900 個Fork。Github地址:

<code>https://github.com/0voice/interview_internal_reference)/<code>


這份項目裡包含了總結了2019年的BAT(百度、阿里、騰訊),TMD(頭條、美團、滴滴)等眾多互聯網科技公司的面試題目,並附上答案。


春招大廠往這看


下面一起來看看這份錦囊裡都包含了哪些內容:


【阿里篇】


1.1.1 如何實現一個高效的單向鏈表逆序輸出?

1.1.2 已知sqrt(2)約等於1.414,要求不用數學庫,求sqrt(2)精確到小數點後10位

1.1.3 給定一個二叉搜索樹(BST),找到樹中第 K 小的節點

1.1.4 LRU緩存機制

1.1.5 關於epoll和select的區別,以下哪些說法是正確的

1.1.6 從innodb的索引結構分析,為什麼索引的 key 長度不能太長

1.1.7 MySQL的數據如何恢復到任意時間點?

1.1.8 NFS 和 SMB 是最常見的兩種 NAS(Network Attached Storage)協議,當把一個文件系統同時通過 NFS 和 SMB 協議共享給多個主機訪問時,以下哪些說法是錯誤的

1.1.9 輸入 ping IP 後敲回車,發包前會發生什麼?

1.2.0 請解釋下為什麼鹿晗發佈戀情的時候,微博系統會崩潰,如何解決?

1.2.1 現有一批郵件需要發送給訂閱顧客,且有一個集群(集群的節點數不定,會動態擴容縮容)來負責具體的郵件發送任務,如何讓系統儘快地完成發送?

1.2.2 有一批氣象觀測站,現需要獲取這些站點的觀測數據,並存儲到 Hive 中。但是氣象局只提供了 api 查詢,每次只能查詢單個觀測點。那麼如果能夠方便快速地獲取到所有的觀測點的數據?

1.2.3 如何實現兩金額數據相加(最多小數點兩位)

1.2.4 關於並行計算的一些基礎開放問題

1.2.5 請計算XILINX公司VU9P芯片的算力相當於多少TOPS,給出計算過程與公式

1.2.6 一顆現代處理器,每秒大概可以執行多少條簡單的MOV指令,有哪些主要的影響因素

1.2.7 請分析 MaxCompute 產品與分佈式技術的關係、當前大數據計算平臺類產品的市場現狀和發展趨勢

1.2.8 對大數據平臺中的元數據管理是怎麼理解的,元數據收集管理體系是怎麼樣的,會對大數據應用有什麼樣的影響

1.2.9 你理解常見如阿里,和友商大數據平臺的技術體系差異以及發展趨勢和技術瓶頸,在存儲和計算兩個方面進行概述

1.3.0 在雲計算大數據處理場景中,每天運行著成千上萬的任務,每個任務都要進行 IO 讀寫。存儲系統為了更好的服務,經常會保證高優先級的任務優先執行。當多個作業或用戶訪問存儲系統時,如何保證優先級和公平性

1.3.1 最大頻率棧

1.3.2 給定一個鏈表,刪除鏈表的倒數第N個節點,並且返回鏈表的頭結點

1.3.3 如果讓你設計一個通用的、支持各種數據庫秒級備份和恢復的系統,你會如何設計

1.3.4 如果讓你來設計一個支持數據庫、NOSQL 和大數據之間數據實時流動的數據流及處理的系統,你會考慮哪些問題?如何設計?

1.3.5 給定一個整數數組和一個整數,返回兩個數組的索引,這兩個索引指向的數字的加和等於指定的整數。需要最優的算法,分析算法的空間和時間複雜度

1.3.6 假如給你一個新產品,你將從哪些方面來保障它的質量?

1.3.7 請評估一下程序的執行結果?


【華為篇】


2.1.0 static有什麼用途?(請至少說明兩種)

2.1.1 引用與指針有什麼區別?

2.1.2 描述實時系統的基本特性

2.1.3 全局變量和局部變量在內存中是否有區別?如果有,是什麼區別?

2.1.4 什麼是平衡二叉樹?

2.1.5 堆棧溢出一般是由什麼原因導致的?

2.1.6 什麼函數不能聲明為虛函數?

2.1.7 冒泡排序算法的時間複雜度是什麼?

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

2.1.9 Internet採用哪種網絡協議?該協議的主要層次結構?

2.2.0 Internet物理地址和IP地址轉換採用什麼協議?

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

2.2.2 用戶輸入M,N值,從1至N開始順序循環數數,每數到M輸出該數值,直至全部輸出。寫出C程序。

2.2.3 不能做switch()的參數類型是

2.2.4 int A[nSize],其中隱藏著若干0,其餘非0整數,寫一個函數int Func(int* A, int nSize),使A把0移至後面,非0整數移至數組前面並保持有序,返回值為原數據中第一個元素為0的下標。

2.2.5 寫一個程序, 要求功能:求出用1,2,5這三個數不同個數組合的和為100的組合個數

2.2.6 實現一個函數,把一個字符串中的字符從小寫轉為大寫

2.2.7 隨機輸入一個數,判斷它是不是對稱數(迴文數)(如3,121,12321,45254)。不能用字符串庫函數

2.2.8 求2~2000的所有素數.有足夠的內存,要求儘量快

2.2.9 A,B,C,D四個進程,A向buf裡面寫數據,B,C,D向buf裡面讀數據,當A寫完,且B,C,D都讀一次後,A才能再寫。用P,V操作實現。

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

2.3.1 將二叉樹的兩個孩子換位置,即左變右,右變左。不能用遞規。

2.3.2 以下屬於物理層的設備是?

2.3.3 在以太網中,是根據()地址來區分不同的設備的?

2.3.4 以下為傳輸層協議的是?

2.3.5 以下對MAC地址描述正確的是?

2.3.6 以下屬於數據鏈路層功能的是?

2.3.7 IEEE802.3u標準是指?

2.3.8 如果要將兩計算機通過雙絞線直接連接,正確的線序是?

2.3.9 在V.35和V.24規程中,控制信號RTS表示?

2.4.0 路由器作為網絡互連設備,必須具備以下哪些特點?

2.4.1 路由器的作用有?

2.4.2 調用上一條歷史命令的快捷鍵是?

2.4.3 交換機工作在OSI七層的哪一層?

2.4.4 以下對CSMA/CD描述正確的是?

2.4.5 以下對STORE ANDFORWARD描述正確的是?

2.4.6 以下對交換機工作方式描述正確的是?

2.4.7 VLAN的主要作用有?

2.4.8 在交換機中用戶權限分為幾個級別?

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

2.5.0 第一次配置路由器時可以使用的方法為?

2.5.1 在何種狀態下可以為路由器改名?

2.5.2 某公司申請到一個C類IP地址,但要連接6個的子公司,最大的一個子公司有 26臺計算機,每個子公司在一個網段中,則子網掩碼應設為?

2.5.3 與10.110.12.29mask 255.255.255.224屬於同一網段的主機IP地址是?

2.5.4 ARP協議的作用是?

2.5.5 當路由器接收的IP報文的TTL值等於1時,採取的策略是?

2.5.6 在NetWare 網絡中,客戶需要訪問某個類型的服務器時,首先要發送一個 ()廣播報文來尋找服務器?

2.5.7 IPX地址網絡地址有( )個字節?

2.5.8 對於幀中繼描述正確的是?

2.5.9 對於INVERSE ARP的描述正確的是?



3.1.0 在函數內定義一個字符數組,用gets函數輸入字符串的時候,如果輸入越界,為什麼程序會崩潰?

3.1.1 C++中引用與指針的區別

3.1.2 C/C++程序的內存分區

3.1.3 快速排序的思想、時間複雜度、實現以及優化方法

3.1.4 IO模型——IO多路複用機制?

3.1.5 常用的Linux命令

3.1.6 C中變量的存儲類型有哪些?

3.1.7 動態規劃的本質

3.1.8 實踐中如何優化MySQL?

3.1.9 什麼情況下設置了索引但無法使用?

3.2.0 SQL語句的優化

3.2.1 數據庫索引的底層實現原理和優化

3.2.2 HTTP和HTTPS的主要區別?

3.2.3 如何設計一個高併發的系統?

3.2.4 兩條相交的單向鏈表,如何求他們的第一個公共節點?

3.2.5 求單向局部循環鏈表的環入口?

3.2.6 IP地址如何在數據庫中存儲?

3.2.7 new/delete和malloc/free的底層實現?

3.2.8 overload、override、overwrite的介紹?

3.2.9 小端/大端機器?

3.3.0 守護進程

3.3.1 多線程的優缺點

3.3.2 長連接與短連接

3.3.3 二分圖應用於最佳匹配問題(遊客對房間的滿意度之和最大問題)

3.3.4 class與struct的區別?

3.3.5 虛函數和純虛函數

3.3.6 menset()函數

3.3.7 實現一個函數,對一個正整數n,算得到1需要的最少操作次數。操作規則為:如果n為偶數,將其除以2;如果n為奇數,可以加1或減1;一直處理下去。

3.3.8 找到滿足條件的數組

3.3.9 一個大的含有50M個URL的記錄,一個小的含有500個URL的記錄,找出兩個記錄裡相同的URL

3.4.0 海量日誌數據,提取出某日訪問百度次數最多的那個IP

3.4.1 有10個文件,每個文件1G,每個文件的每一行都存放的是用戶的query,每個文件的query都可能重複。如何按照query的頻度排序?

3.4.2 螞蟻爬杆問題

3.4.3 當在瀏覽器中輸入一個url後回車,後臺發生了什麼?比如輸入url後,你看到了百度的首頁,那麼這一切是如何發生的呢?

3.4.4 判斷兩棵樹是否相等,請實現兩棵樹是否相等的比較,相等返回1,否則返回其他值,並說明算法複雜度

3.4.5 三個警察和三個囚徒的過河問題

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

3.4.7 如何找出字典中的兄弟單詞。給定一個單詞a,如果通過交換單詞中字母的順序可以得到另外的單詞b,那麼定義b是a的兄弟單詞。現在給定一個字典,用戶輸入一個單詞,如何根據字典找出這個單詞有多少個兄弟單詞?

3.4.8 找出數組中出現次數超過一半的數,現在有一個數組,已知一個數出現的次數超過了一半,請用O(n)的複雜度的算法找出這個數。

3.4.9 找出被修改過的數字

3.5.0 設計DNS服務器中cache的數據結構。要求設計一個DNS的Cache結構,要求能夠滿足每秒5000以上的查詢,滿足IP數據的快速插入,查詢的速度要快。(題目還給出了一系列的數據,比如:站點數總共為5000萬,IP地址有1000萬,等等)

3.5.1 找出給定字符串對應的序號

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

3.5.3 給40億個不重複的unsigned int的整數,沒排過序的,然後再給幾個數,如何快速判斷這幾個數是否在那40億個數當中?

3.5.4 在一個文件中有10G個整數,亂序排列,要求找出中位數。內存限制為2G。

3.5.5 時分秒針在一天之類重合多少次?(24小時)

3.5.6 將多個集合合併成沒有交集的集合。

3.5.7 平面內有11個點,由它們連成48條不同的直線,由這些點可連成多少個三角形?


【騰訊篇】


Java基礎

4.1.0 JAVA中的幾種基本數據類型是什麼,各自佔用多少字節。

4.1.1 String類能被繼承嗎,為什麼。

4.1.2 String,Stringbuffer,StringBuilder的區別。

4.1.3 ArrayList和LinkedList有什麼區別。

4.1.4 講講類的實例化順序,比如父類靜態數據,構造函數,字段,子類靜態數據,構造函數,字段,當new的時候,他們的執行順序。

4.1.5 用過哪些Map類,都有什麼區別,HashMap是線程安全的嗎,併發下使用的Map是什麼,他們內部原理分別是什麼,比如存儲方式,hashcode,擴容,默認容量等。

4.1.6 JAVA8的ConcurrentHashMap為什麼放棄了分段鎖,有什麼問題嗎,如果你來設計,你如何設計。

4.1.7 有沒有有順序的Map實現類,如果有,他們是怎麼保證有序的。

4.1.8 抽象類和接口的區別,類可以繼承多個類麼,接口可以繼承多個接口麼,類可以實現多個接口麼。

4.1.9 繼承和聚合的區別在哪。

4.2.0 IO模型有哪些,講講你理解的nio ,他和bio,aio的區別是啥,談談reactor模型。

4.2.1 反射的原理,反射創建類實例的三種方式是什麼。

4.2.2 反射中,Class.forName和ClassLoader區別 。

4.2.3 描述動態代理的幾種實現方式,分別說出相應的優缺點。

4.2.4 動態代理與cglib實現的區別。

4.2.5 為什麼CGlib方式可以對接口實現代理。

4.2.6 final的用途。

4.2.7 寫出三種單例模式實現 。

4.2.8 如何在父類中為子類自動完成所有的hashcode和equals實現?這麼做有何優劣。

4.2.9 請結合OO設計理念,談談訪問修飾符public、private、protected、default在應用設計中的作用。

4.3.0 深拷貝和淺拷貝區別。

4.3.1 數組和鏈表數據結構描述,各自的時間複雜度。

4.3.2 error和exception的區別,CheckedException,RuntimeException的區別。

4.3.3 請列出5個運行時異常。

4.3.4 在自己的代碼中,如果創建一個java.lang.String類,這個類是否可以被類加載器加載?為什麼。

4.3.5 說一說你對java.lang.Object對象中hashCode和equals方法的理解。在什麼場景下需要重新實現這兩個方法。

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

4.3.7 這樣的a.hashcode() 有什麼用,與a.equals(b)有什麼關係。

4.3.8 有沒有可能2個不相等的對象有相同的hashcode。

4.3.9 Java中的HashSet內部是如何工作的。

4.4.0 什麼是序列化,怎麼序列化,為什麼序列化,反序列化會遇到什麼問題,如何解決。

4.4.1 java8的新特性。

JVM

4.4.2 什麼情況下會發生棧內存溢出。

4.4.3 JVM的內存結構,Eden和Survivor比例。

4.4.4 JVM內存為什麼要分成新生代,老年代,持久代。新生代中為什麼要分為Eden和Survivor。

4.4.5 JVM中一次完整的GC流程是怎樣的,對象如何晉升到老年代,說說你知道的幾種主要的JVM參數。

4.4.6 你知道哪幾種垃圾收集器,各自的優缺點,重點講下cms和G1,包括原理,流程,優缺點。

4.4.7 垃圾回收算法的實現原理。

4.4.8 當出現了內存溢出,你怎麼排錯。

4.4.9 JVM內存模型的相關知識瞭解多少,比如重排序,內存屏障,happen-before,主內存,工作內存等。

4.5.0 簡單說說你瞭解的類加載器,可以打破雙親委派麼,怎麼打破。

4.5.1 講講JAVA的反射機制。

4.5.2 你們線上應用的JVM參數有哪些。

4.5.3 g1和cms區別,吞吐量優先和響應優先的垃圾收集器選擇。

4.5.4 怎麼打出線程棧信息。

開源框架

4.5.5 簡單講講tomcat結構,以及其類加載器流程,線程模型等。

4.5.6 tomcat如何調優,涉及哪些參數 。

4.5.7 講講Spring加載流程。

4.5.8 Spring AOP的實現原理。

4.5.9 講講Spring事務的傳播屬性。

4.6.0 Spring如何管理事務的。

4.6.1 Spring怎麼配置事務(具體說出一些關鍵的xml 元素)。

4.6.2 說說你對Spring的理解,非單例注入的原理?它的生命週期?循環注入的原理,aop的實現原理,說說aop中的幾個術語,它們是怎麼相互工作的。

4.6.3 Springmvc 中DispatcherServlet初始化過程。

4.6.4 netty的線程模型,netty如何基於reactor模型上實現的。

4.6.5 為什麼選擇netty。

4.6.6 什麼是TCP粘包,拆包。解決方式是什麼。

4.6.7 netty的fashwheeltimer的用法,實現原理,是否出現過調用不夠準時,怎麼解決。

4.6.8 netty的心跳處理在弱網下怎麼辦。

4.6.9 netty的通訊協議是什麼樣的。

4.7.0 springmvc用到的註解,作用是什麼,原理。

4.7.1 springboot啟動機制。

操作系統

4.7.2 Linux系統下你關注過哪些內核參數,說說你知道的。

4.7.3 Linux下IO模型有幾種,各自的含義是什麼。

4.7.4 epoll和poll有什麼區別。

4.7.5 平時用到哪些Linux命令。

4.7.6 用一行命令查看文件的最後五行。

4.7.7 用一行命令輸出正在運行的java進程。

4.7.8 介紹下你理解的操作系統中線程切換過程。

4.7.9 進程和線程的區別。

4.8.0 top 命令之後有哪些內容,有什麼作用。

4.8.1 線上CPU爆高,請問你如何找到問題所在。


【美團篇】


5.1.0 java虛擬機內存模型

5.1.1 內存溢出一般發生在哪個區?永久代會不會導致內存溢出?

5.1.2 動態加載類的框架了解哪些?

5.1.3 動態代理一般有哪幾種實現方式?動態代理的應用場景有哪些?

5.1.4 棧會不會溢出?棧溢出一般拋什麼異常?jvm在哪裡設置棧的大小?設置的參數是什麼?

5.1.5 用過哪些命令查看jvm的狀態、堆棧信息?

5.1.6 jvm的垃圾回收機制?

5.1.7 java類加載機制?如何實現自定義類加載器?findClass與loadClass的區別?

5.1.8 String、StringBuffer、StringBuilder的區別?對應的使用場景?

5.1.9 如何實現不可變的類?

5.2.0 淺複製和深複製?怎樣實現深複製?

5.2.1 HashMap、HashTable、ConcurrentHashMap的區別?

5.2.2 CAS是一種什麼樣的同步機制?

5.2.3 NIO的原理,包括哪幾個組件?

5.2.4 簡單介紹一下java的反射機制?反射在哪些地方有應用場景?

5.2.5 spring加載bean的流程?

5.2.6 java線程池?線程池構造函數的幾個參數含義?keepAliveTime解釋一下?

5.2.7 一個接口,要去調用另外5個接口,每一個接口都會返回數據給這個調用接口,調用接口要對數據進行合併並返回給上層。這樣一種場景可能用到併發包下的哪些類?你會怎麼去實現這樣的業務場景?

5.2.8 CountDownLatch和CyclicBarrier的區別?

5.2.9 線程加鎖有哪些方式?synchronized和lock的區別?

5.3.0 volatile關鍵字的作用?為什麼使用AtomicLong而不使用Long?AtomicLong的底層是怎麼實現的?

5.3.1 mysql的存儲引擎有哪幾種?

5.3.2 sql優化有哪些著手點?組合索引的最左前綴原則的含義?

5.3.3 springmvc處理請求的流程?

5.3.4 spring的事務怎麼使用?事務回滾?自定義異常?

5.3.5 髒讀?幻讀?

5.3.6 tcp四次揮手的過程?TIME_WAIT為什麼至少設置兩倍的MSL時間?

5.3.7 get和post請求的區別?

5.3.8 cookie和session的請求?

5.3.9 瞭解哪些開源的中間件?緩存?消息?分佈式框架?

5.4.0 用到過哪些設計模式?單例模式的實現?

5.4.1 數據庫的事務實現原理、操作過程、如何做到事物之間的獨立性等問題

5.4.2 數據庫的髒讀,幻讀,不可重複讀出現的原因原理,解決辦法

5.4.3 數據庫的隔離級別、MVCC

5.4.4 樂觀鎖、悲觀鎖、互斥鎖、讀寫鎖的原理實現與區別

5.4.5 線程的生命週期

5.4.6 一致性hash算法原理與應用

5.4.7 CAP原則

5.4.8 CAS操作

5.4.9 分佈式raft算法


【頭條篇】


6.1.0 5個人去一個海島尋寶,最後一共找到了100枚金幣。他們約定了一個分配方案。

6.1.1 給你一個有序整數數組,數組中的數可以是正數、負數、零,請實現一個函數,這個函數返回一個整數:返回這個數組所有數的平方值中有多少種不同的取值。

6.1.2 一個環有10個節點,編號0-9。從0點出發,走N步又能回到0點,共有多少種走法?

6.1.3 一個亂序數組,求第K大的數。排序方式使用字典序。

6.1.4 一棵二叉樹,求最大通路長度。(即最大左右子樹高度之和)

6.1.5 進程和線程的區別,使用線程真的能節省時間?

6.1.6 go協程的調度方式,使用協程真的能節省時間?

6.1.7 水平觸發邊沿觸發的區別?在邊沿觸發下,一個socket有500的數據,已讀取200然後不再處理,是不是剩下的300就永遠無法讀取?

6.1.8 有函數如下,輸入1,返回什麼?

6.1.9 設計http協議,A端發送 AAAA,至少讓B端知道AAAA已發送完成。

6.2.0 流量總入口為api_gateway,api_gateway掛了會導致全部掛掛,用什麼機制增大可用性?

6.2.1 mysql為什麼要用b+樹,不用平衡二叉樹做索引結構?

6.2.2 創建數據庫索引應該怎麼考慮?

6.2.3 使用int 做primary key和使用string 有什麼優劣?

6.2.4 數據庫分表的方法?

6.2.5 表結構,訂單紀錄如下,寫一個語句,求賣的最好的 top 10 product_id。

6.2.6 微服務,A服務請求B服務B1接口,B1接口又請求A服務A2接口。會不會有問題?

6.2.7 不使用高級工具,只使用Linux自帶的工具,你會如何debug?

6.2.8 如何預估一個mysql語句的性能?

6.2.9 go函數中,返回值未命名,發生了panic,但是在函數內recover了。函數返回什麼值?

6.3.0 socket中,在tcp協議層面,數據分為10個報文發放。1-7次很順利,第8次丟失。這次通信一定失敗嗎?如果第8次數據會重發,那在接收端是不是:先讀取到1-7次的數據,然後讀取到8-10次的數據?還是9-10次的數據會先到達?

6.3.1 free -h,buffers 和cached有什麼不同

6.3.2 後臺進程有什麼特點,如果要你設計一個進程是後臺進程,你會考慮什麼

6.3.3 殭屍進程是什麼,如果產生一個殭屍進程,如何查找殭屍進程

6.3.4 孤兒進程是什麼

6.3.5 一個進程有20個線程,在某個線程中調用fork,新的進程會有20個線程嗎?

6.3.6 tcp/ip 流量控制和擁塞控制

6.3.7 301/302有什麼區別?應用上有什麼異同。

6.3.8 50X相關錯誤碼的內涵是什麼?

6.3.9 close wait和time wait是什麼?如何排查?有什麼意義?

6.4.0 http req和resp的中數據有哪些

6.4.1 什麼是連接的半打開,半關閉狀態

6.4.2 假如一個業務依賴單點redis,此redis故障將導致業務不可用,如何改進

6.4.3 redis sharding有哪些做法

6.4.4 當大量數據要求用redis保存,單機單點難以滿足需要,設計(換尋找)一個負載均衡的方案

6.4.5 當redis 採用hash做sharding,現在有8個節點,負載方案是 pos = hash(key) % 8,然後保存在pos節點上。這樣做有什麼好處壞處?當8個節點要擴充到10個節點,應該怎麼辦?有什麼更方便擴充的方案嗎?(一致性hash, presharding)

6.4.6 如何保證redis和數據庫數據的一致性。比如用戶名既保存在數據庫,又保存在redis做緩存。有如下操作 update_db(username); update_redis(username)。但是執行update_db後故障,update_redis沒有執行。有什麼簡單辦法解決這個問題。


【滴滴篇】


7.1.0 B+樹、B-樹的區別?

7.1.1 數據庫隔離級別,幻讀和不可重複讀的區別?

7.1.2 有hell, well, hello, world等字符串組,現在問能否拼接成helloworld,代碼實現。

7.1.3 快排算法實現

7.1.4 線程安全的單例模式

7.1.5 25匹馬賽跑,有一個賽場,只有五個賽道,沒有計時器,只能通過目測來記錄快慢,求出第三3快的馬要多少場比賽?

7.1.6 kmp算法next數組的求解思路

7.1.7 數組中有三個數字出現超過3/4,求這三個數字?

7.1.8 1到n+2個數組中缺了兩個數,如何用O(n)時間,O(1)空間找到這兩個數字。

7.1.9 一條線段長為1,隨機選兩個點,將改線段分為三段,三段能成三角形的概率是多少?

7.2.0 有一個教授,他三個學生,腦袋背後分別各寫了一個數字,其中一個數字是另外兩個數字的和,經過幾輪後,有一個學生猜出了自己的數字請問是什麼原因?

7.2.1 B+樹做索引時,B+樹通常高度為多少層?要參考哪些條件?


【京東篇】


8.1.0 一般sql注入怎麼發現觸點的,從源碼闡述sqlmap如何測試注入點的。

8.1.1 masscan掃描端口時靠什麼檢測,為什麼這麼快? 請詳述.

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

8.1.3 如何提高採用python編寫的掃描速度,談談對GIL鎖的瞭解.

8.1.4 你覺得你發現的那個漏洞影響比較大.

8.1.5 常見的web漏洞有哪些.

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

8.1.7 反爬蟲,如果是你如何進行反爬蟲,如何繞過反爬措施。使用無頭瀏覽器被檢測到了,如何繞過

8.1.8 nmap掃描如何進行掃描。發包與協議,握手和不握手,哪些協議握手,哪些不握手. 如何不直接接觸目標服務器探測對方端口是否開放

8.1.9 有沒有自己編寫過yara掃描模塊,如果要解決掃描{k1:v1, k2:v2, k3:v3} ,保證同時在k1中的v1裡出現特定值,k2中出現v2特定值,以及k3,v3。怎麼實現

8.2.0 xss什麼原理,如何自己實現一個beef類似的xss平臺. 既然這樣實現,面臨的跨域如何解決?

8.2.1 ip 頻率限制, ip信譽度模型?

8.2.2 SCTP協議是什麼?如何使用 SCTP 優化網絡?


【MySQL篇】


9.1.0 主鍵 超鍵 候選鍵 外鍵

9.1.1 數據庫事務的四個特性及含義

9.1.2 視圖的作用,視圖可以更改麼?

9.1.3 drop,delete與truncate的區別

9.1.4 索引的工作原理及其種類

9.1.5 連接的種類

9.1.6 數據庫範式

9.1.7 數據庫優化的思路

9.1.8 存儲過程與觸發器的區別


【Redis篇】


10.1.0 使用Redis有哪些好處?

10.1.1 redis相比memcached有哪些優勢?

10.1.2 redis常見性能問題和解決方案

10.1.3 MySQL裡有2000w數據,redis中只存20w的數據,如何保證redis中的數據都是熱點數據

10.1.4 Memcache與Redis的區別都有哪些?

10.1.5 Redis 常見的性能問題都有哪些?如何解決?

10.1.6 redis 最適合的場景

10.1.7 Redis的同步機制瞭解麼?

10.1.8 是否使用過Redis集群,集群的原理是什麼?

10.1.9 redis集群如何保證一致性?


【MongoDB篇】


11.1.0 什麼是MongoDB?

11.1.1 MongoDB是由哪種語言寫的?

11.1.2 MongoDB的優勢有哪些?

11.1.3 什麼是數據庫?

11.1.4 什麼是集合?

11.1.5 什麼是文檔?

11.1.6 MongoDB和關係型數據庫術語對比圖

11.1.7 什麼是“mongod”?

11.1.8 “mongod”參數有什麼?

11.1.9 什麼是“mongo”?

11.2.0 MongoDB哪個命令可以切換數據庫?

11.2.1 什麼是非關係型數據庫?

11.2.2 非關係型數據庫有哪些類型?

11.2.3 為什麼用MOngoDB?

11.2.4 在哪些場景使用MongoDB?

11.2.5 MongoDB中的命名空間是什麼意思?

11.2.6 哪些語言支持MongoDB?

11.2.7 在MongoDB中如何創建一個新的數據庫?

11.2.8 在MongoDB中如何查看數據庫列表?

11.2.9 MongoDB中的分片是什麼意思?

11.3.0 如何查看使用MongoDB的連接?

11.3.1 什麼是複製?

11.3.2 在MongoDB中如何在集合中插入一個文檔?

11.3.3 在MongoDB中如何除去一個數據庫?

11.3.4 在MongoDB中如何創建一個集合?

11.3.5 在MongoDB中如何查看一個已經創建的集合?

11.3.6 在MongoDB中如何刪除一個集合?

11.3.7 為什麼要在MongoDB中使用分析器?

11.3.8 MongoDB支持主鍵外鍵關係嗎?

11.3.9 MongoDB支持哪些數據類型?

11.4.0 為什麼要在MongoDB中用"Code"數據類型?

11.4.1 為什麼要在MongoDB中用"Regular Expression"數據類型?

11.4.2 為什麼在MongoDB中使用"Object ID"數據類型?

11.4.3 如何在集合中插入一個文檔?

11.4.4 “ObjectID”有哪些部分組成?

11.4.5 在MongoDb中什麼是索引?

11.4.6 如何添加索引?

11.4.7 MongoDB有哪些可替代產品?

11.4.8 如何查詢集合中的文檔?

11.4.9 用什麼方法可以格式化輸出結果?

11.5.0 如何使用"AND"或"OR"條件循環查詢集合中的文檔?

11.5.1 在MongoDB中如何更新數據?

11.5.2 如何刪除文檔?

11.5.3 在MongoDB中如何排序?

11.5.4 什麼是聚合?

11.5.5 在MongoDB中什麼是副本集?

11.5.6 Mongodb存儲特性與內部原理?


【Zookeeper篇】


12.1.0 zookeeper是什麼?

12.1.1 zookeeper提供了什麼?

12.1.2 zookeeper文件系統

12.1.3 zookeeper的四種類型的znode

12.1.4 zookeeper通知機制

12.1.5 zookeeper有哪些應用場景?

12.1.6 zk的命名服務

12.1.7 zk的配置管理服務

12.1.8 zk的集群管理

12.1.9 zk的分佈式鎖

12.2.0 zk隊列管理

12.2.1 zk數據複製

12.2.2 zk的工作原理

12.2.3 zk是如何保證事物的順序一致性

12.2.4 zk集群下server工作狀態

12.2.5 zk是如何選舉Leader的?

12.2.6 zk同步流程

12.2.7 分佈式通知和協調

12.2.8 zk的session機制


【Nginx篇】


13.1.0 請解釋一下什麼是Nginx?

13.1.1 請列舉Nginx的一些特性?

13.1.2 請列舉Nginx和Apache 之間的不同點?

13.1.3 請解釋Nginx如何處理HTTP請求。

13.1.4 在Nginx中,如何使用未定義的服務器名稱來阻止處理請求?

13.1.5 使用“反向代理服務器”的優點是什麼?

13.1.6 請列舉Nginx服務器的最佳用途。

13.1.7 請解釋Nginx服務器上的Master和Worker進程分別是什麼?

13.1.8 請解釋你如何通過不同於80的端口開啟Nginx?

13.1.9 請解釋是否有可能將Nginx的錯誤替換為502錯誤、503?

13.2.0 在Nginx中,解釋如何在URL中保留雙斜線?

13.2.1 請解釋ngx_http_upstream_module的作用是什麼?

13.2.2 請解釋什麼是C10K問題,後來是怎麼解決的?

13.2.3 請陳述stub_status和sub_filter指令的作用是什麼?

13.2.4 解釋Nginx是否支持將請求壓縮到上游?

13.2.5 解釋如何在Nginx中獲得當前的時間?

13.2.6 用Nginx服務器解釋-s的目的是什麼?

13.2.7 解釋如何在Nginx服務器上添加模塊?

13.2.8 nginx中多個work進程是如何監聽同一個端口的?如何處理客戶連接的驚群問題?

13.2.9 nginx程序的熱更新是如何做的?


更多內容請見GitHub庫: https://github.com/0voice/interview_internal_reference


分享到:


相關文章: