一.阿里篇java
1.1.1 如何實現一個高效的單向鏈表逆序輸出?python
1.1.2 已知sqrt(2)約等於1.414,要求不用數學庫,求sqrt(2)精確到小數點後10位react
1.1.3 給定一個二叉搜索樹(BST),找到樹中第 K 小的節點c++
1.1.4 LRU緩存機制算法
1.1.5 關於epoll和select的區別,如下哪些說法是正確的spring
1.1.6 從innodb的索引結構分析,爲何索引的 key 長度不能太長數據庫
1.1.7 MySQL的數據如何恢復到任意時間點?api
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,位置在一、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爆高,請問你如何找到問題所在。
答案及分析
問題:如何實現一個高效的單向鏈表逆序輸出?
出題人:阿里巴巴出題專家:昀龍/阿里雲彈性人工智能負責人
參考答案:下面是其中一種寫法,也能夠有不一樣的寫法,好比遞歸等。供參考。
https://oscimg.oschina.net/os...
題目:已知 sqrt (2)約等於 1.414,要求不用數學庫,求 sqrt (2)精確到小數點後 10 位。
出題人:——阿里巴巴出題專家:文景/阿里雲 CDN 資深技術專家
參考答案:
基礎算法的靈活應用能力(二分法學過數據結構的同窗都知道,但不必定往這個方向考慮;若是學過數值計算的同窗,應該還要能想到牛頓迭代法並解釋清楚)
退出條件設計
查找,如: a) high=>1.5 b) low=>1.4 c) mid => (high+low)/2=1.45 d) 1.45*1.45>2 ? high=>1.45 : low => 1.45 e) 循環到 c)
a) 先後兩次的差值的絕對值<=0.0000000001, 則可退出
https://oscimg.oschina.net/os...
題目:給定一個二叉搜索樹(BST),找到樹中第 K 小的節點。
出題人:阿里巴巴出題專家:文景/阿里雲 CDN 資深技術專家
參考答案:
基礎數據結構的理解和編碼能力
遞歸使用
https://oscimg.oschina.net/os...
說明:保證輸入的 K 知足 1<=K<=(節點數目)
樹相關的題目,第一眼就想到遞歸求解,左右子樹分別遍歷。聯想到二叉搜索樹的性質,root 大於左子樹,小於右子樹,若是左子樹的節點數目等於 K-1,那麼 root 就是結果,不然若是左子樹節點數目小於 K-1,那麼結果必然在右子樹,不然就在左子樹。所以在搜索的時候同時返回節點數目,跟 K 作對比,就能得出結果了。
https://oscimg.oschina.net/os...
https://oscimg.oschina.net/os...
題目:LRU 緩存機制 設計和實現一個 LRU(最近最少使用)緩存數據結構,使它應該支持一下操做:get 和 put。 get(key) - 若是 key 存在於緩存中,則獲取 key 的 value(老是正數),不然返回 -1。 put(key,value) - 若是 key 不存在,請設置或插入 value。當緩存達到其容量時,它應該在插入新項目以前使最近最少使用的項目做廢。
出題人:文景/阿里雲 CDN 資深技術專家
參考答案:
python版本的:
https://oscimg.oschina.net/os...
https://oscimg.oschina.net/os...
c++版本的:
https://oscimg.oschina.net/os...
問題:關於 epoll 和 select 的區別,哪些說法是正確的?(多選)
A. epoll 和 select 都是 I/O 多路複用的技術,均可以實現同時監聽多個 I/O 事件的狀態。
B. epoll 相比 select 效率更高,主要是基於其操做系統支持的I/O事件通知機制,而 select 是基於輪詢機制。
C. epoll 支持水平觸發和邊沿觸發兩種模式。
D. select 能並行支持 I/O 比較小,且沒法修改。
出題人:阿里巴巴出題專家:寈峯/阿里技術專家
參考答案:A,B,C
【延伸】那在高併發的訪問下,epoll使用那一種觸發方式要高效些?當使用邊緣觸發的時候要注意些什麼東西?
題目:從 innodb 的索引結構分析,爲何索引的 key 長度不能太長?
出題人:阿里巴巴出題專家:近秋/阿里雲數據庫產品技術部技術專家
參考答案:key 太長會致使一個頁當中可以存放的 key 的數目變少,間接致使索引樹的頁數目變多,索引層次增長,從而影響總體查詢變動的效率。
題目:MySQL 的數據如何恢復到任意時間點?
出題人:阿里巴巴出題專家:近秋/阿里雲數據庫產品技術部技術專家參考答案
參考答案:恢復到任意時間點以定時的作全量備份,以及備份增量的 binlog 日誌爲前提。恢復到任意時間點首先將全量備份恢復以後,再此基礎上回放增長的 binlog 直至指定的時間點。
題目:NFS 和 SMB 是最多見的兩種 NAS(Network Attached Storage)協議,當把一個文件系統同時經過 NFS 和 SMB 協議共享給多個主機訪問時,如下哪些說法是錯誤的:(多選)
A. 不可能有這樣的操做,即把一個文件系統同時經過 NFS 和 SMB協議共享給多個主機訪問。
B. 主機 a 的用戶經過NFS 協議建立的文件或者目錄,另外一個主機 b的用戶不能經過 SMB 協議將其刪除。
C. 在同一個目錄下,主機 a 經過 NFS 協議看到文件 file.txt,主機b 經過 SMB 協議也看到文件 file.txt,那麼它們是同一個文件。
D. 主機 a 經過 NFS 協議,以及主機 b 經過 SMB 協議,均可以經過主機端的數據緩存,提高文件訪問性能。
出題人:阿里巴巴出題專家:起影/阿里雲文件存儲高級技術專家
參考答案:A,B,C
題目:輸入 ping IP 後敲回車,發包前會發生什麼?
出題人:阿里巴巴出題專家:懷虎/阿里云云效平臺負責人
參考答案:
首先根據目的IP和路由表決定走哪一個網卡,再根據網卡的子網掩碼地址判斷目的IP是否在子網內。若是不在則會經過arp緩存查詢IP的網卡地址,不存在的話會經過廣播詢問目的IP的mac地址,獲得後就開始發包了,同時mac地址也會被arp緩存起來。
答案太多,文章答案解析就不所有分析了。
若是須要其餘答案分析,自行去爬吧。
https://oscimg.oschina.net/os...