9月最新184道阿里、百度、騰訊、頭條Java面試題合集

阿里面試題

1. 如何實現一個高效的單向鏈表逆序輸出?
2. 已知sqrt(2)約等於1.414,要求不用數學庫,求sqrt(2)精確到小數點後10位
3. 給定一個二叉搜索樹(BST),找到樹中第 K 小的節點
4. LRU緩存機制
5. 關於epoll和select的區別,如下哪些說法是正確的
6. 從innodb的索引結構分析,爲何索引的 key 長度不能太長
7. MySQL的數據如何恢復到任意時間點?
8. NFS 和 SMB 是最多見的兩種 NAS(Network Attached Storage)協議,當把一個文件系統同時經過 NFS 和 SMB 協議共享給多個主機訪問時,如下哪些說法是錯誤的
9. 輸入 ping IP 後敲回車,發包前會發生什麼?
10. 請解釋下爲何鹿晗發佈戀情的時候,微博系統會崩潰,如何解決?
11. 現有一批郵件須要發送給訂閱顧客,且有一個集羣(集羣的節點數不定,會動態擴容縮容)來負責具體的郵件發送任務,如何讓系統儘快地完成發送?
12. 有一批氣象觀測站,現須要獲取這些站點的觀測數據,並存儲到 Hive 中。可是氣象局只提供了 api 查詢,每次只能查詢單個觀測點。那麼若是可以方便快速地獲取到全部的觀測點的數據?
13. 如何實現兩金額數據相加(最多小數點兩位)
14. 關於並行計算的一些基礎開放問題
15. 請計算XILINX公司VU9P芯片的算力至關於多少TOPS,給出計算過程與公式
16.一顆現代處理器,每秒大概能夠執行多少條簡單的MOV指令,有哪些主要的影響因素
17.請分析 MaxCompute 產品與分佈式技術的關係、當前大數據計算平臺類產品的市場現狀和發展趨勢
18. 對大數據平臺中的元數據管理是怎麼理解的,元數據收集管理體系是怎麼樣的,會對大數據應用有什麼樣的影響
19.你理解常見如阿里,和友商大數據平臺的技術體系差別以及發展趨勢和技術瓶頸,在存儲和計算兩個方面進行概述
20. 在雲計算大數據處理場景中,天天運行着成千上萬的任務,每一個任務都要進行 IO 讀寫。存儲系統爲了更好的服務,常常會保證高優先級的任務優先執行。當多個做業或用戶訪問存儲系統時,如何保證優先級和公平性
21. 最大頻率棧
22. 給定一個鏈表,刪除鏈表的倒數第N個節點,而且返回鏈表的頭結點
23. 若是讓你設計一個通用的、支持各類數據庫秒級備份和恢復的系統,你會如何設計
24. 若是讓你來設計一個支持數據庫、NOSQL 和大數據之間數據實時流動的數據流及處理的系統,你會考慮哪些問題?如何設計?
25. 給定一個整數數組和一個整數,返回兩個數組的索引,這兩個索引指向的數字的加和等於指定的整數。須要最優的算法,分析算法的空間和時間複雜度
26.假如給你一個新產品,你將從哪些方面來保障它的質量?
27. 請評估一下程序的執行結果?

(文末有答案領取方式)java

騰訊面試題

Java基礎
1. JAVA中的幾種基本數據類型是什麼,各自佔用多少字節。
2. String類能被繼承嗎,爲何。
3.String,Stringbuffer,StringBuilder的區別。
4. ArrayList和LinkedList有什麼區別。
5. 講講類的實例化順序,好比父類靜態數據,構造函數,字段,子類靜態數據,構造函數,字段,當new的時候,他們的執行順序。
6. 用過哪些Map類,都有什麼區別,HashMap是線程安全的嗎,併發下使用的Map是什麼,他們內部原理分別是什麼,好比存儲方式,hashcode,擴容,默認容量等。
7.JAVA8的ConcurrentHashMap爲何放棄了分段鎖,有什麼問題嗎,若是你來設計,你如何設計。
8. 有沒有有順序的Map實現類,若是有,他們是怎麼保證有序的。
9. 抽象類和接口的區別,類能夠繼承多個類麼,接口能夠繼承多個接口麼,類能夠實現多個接口麼。
10. 繼承和聚合的區別在哪。
11. IO模型有哪些,講講你理解的nio ,他和bio,aio的區別是啥,談談reactor模型。
12. 反射的原理,反射建立類實例的三種方式是什麼。
13. 反射中,Class.forName和ClassLoader區別 。
14.描述動態代理的幾種實現方式,分別說出相應的優缺點。
15.動態代理與cglib實現的區別。
16. 爲何CGlib方式能夠對接口實現代理。
17.final的用途。
18.寫出三種單例模式實現 。
19.如何在父類中爲子類自動完成全部的hashcode和equals實現?這麼作有何優劣。
20. 請結合OO設計理念,談談訪問修飾符public、private、protected、default在應用設計中的做用。
21. 深拷貝和淺拷貝區別。
22.數組和鏈表數據結構描述,各自的時間複雜度。
23. error和exception的區別,CheckedException,RuntimeException的區別。
24. 請列出5個運行時異常。
25. 在本身的代碼中,若是建立一個java.lang.String類,這個類是否能夠被類加載器加載?爲何。
26. 說一說你對java.lang.Object對象中hashCode和equals方法的理解。在什麼場景下須要從新實現這兩個方法。
27.在jdk1.5中,引入了泛型,泛型的存在是用來解決什麼問題。
28. 這樣的a.hashcode() 有什麼用,與a.equals(b)有什麼關係。
29. 有沒有可能2個不相等的對象有相同的hashcode。
30. Java中的HashSet內部是如何工做的。
31.什麼是序列化,怎麼序列化,爲何序列化,反序列化會遇到什麼問題,如何解決。
32. java8的新特性。
JVM
33.什麼狀況下會發生棧內存溢出。
34. JVM的內存結構,Eden和Survivor比例。
35. JVM內存爲何要分紅新生代,老年代,持久代。新生代中爲何要分爲Eden和Survivor。
36.JVM中一次完整的GC流程是怎樣的,對象如何晉升到老年代,說說你知道的幾種主要的JVM參數。
37.你知道哪幾種垃圾收集器,各自的優缺點,重點講下cms和G1,包括原理,流程,優缺點。
38. 垃圾回收算法的實現原理。
39. 當出現了內存溢出,你怎麼排錯。
40.JVM內存模型的相關知識瞭解多少,好比重排序,內存屏障,happen-before,主內存,工做內存等。
41.簡單說說你瞭解的類加載器,能夠打破雙親委派麼,怎麼打破。
42. 講講JAVA的反射機制。
43. 大家線上應用的JVM參數有哪些。
44.g1和cms區別,吞吐量優先和響應優先的垃圾收集器選擇。
45. 怎麼打出線程棧信息。
開源框架
46. 簡單講講tomcat結構,以及其類加載器流程,線程模型等。
47. tomcat如何調優,涉及哪些參數 。
48. 講講Spring加載流程。
49. Spring AOP的實現原理。
50.講講Spring事務的傳播屬性。
51. Spring如何管理事務的。
52. Spring怎麼配置事務(具體說出一些關鍵的xml 元素)。
53 說說你對Spring的理解,非單例注入的原理?它的生命週期?循環注入的原理,aop的實現原理,說說aop中的幾個術語,它們是怎麼相互工做的。
54. Springmvc 中DispatcherServlet初始化過程。
55. netty的線程模型,netty如何基於reactor模型上實現的。
56. 爲何選擇netty。
57. 什麼是TCP粘包,拆包。解決方式是什麼。
58.netty的fashwheeltimer的用法,實現原理,是否出現過調用不夠準時,怎麼解決。
59. netty的心跳處理在弱網下怎麼辦。
60. netty的通信協議是什麼樣的。
61. springmvc用到的註解,做用是什麼,原理。
62. springboot啓動機制。
操做系統
63. Linux系統下你關注過哪些內核參數,說說你知道的。
64. Linux下IO模型有幾種,各自的含義是什麼。
65. epoll和poll有什麼區別。
66. 平時用到哪些Linux命令。
67. 用一行命令查看文件的最後五行。
68. 用一行命令輸出正在運行的java進程。
69. 介紹下你理解的操做系統中線程切換過程。
70. 進程和線程的區別。
71. top 命令以後有哪些內容,有什麼做用。
72. 線上CPU爆高,請問你如何找到問題所在。

百度面試題

1.在函數內定義一個字符數組,用gets函數輸入字符串的時候,若是輸入越界,爲何程序會崩潰?
2.C++中引用與指針的區別
3. C/C++程序的內存分區
4. 快速排序的思想、時間複雜度、實現以及優化方法
5.IO模型——IO多路複用機制?
6. 經常使用的Linux命令
7. C中變量的存儲類型有哪些?
8. 動態規劃的本質
9. 實踐中如何優化MySQL?
10. 什麼狀況下設置了索引但沒法使用?
11. SQL語句的優化
12. 數據庫索引的底層實現原理和優化
13. HTTP和HTTPS的主要區別?
14. 如何設計一個高併發的系統?
15. 兩條相交的單向鏈表,如何求他們的第一個公共節點?
16. 求單向局部循環鏈表的環入口?
17. IP地址如何在數據庫中存儲?
18. new/delete和malloc/free的底層實現?
19.overload、override、overwrite的介紹?
20.小端/大端機器?
21. 守護進程
22. 多線程的優缺點
23. 長鏈接與短鏈接
24. 二分圖應用於最佳匹配問題(遊客對房間的滿意度之和最大問題)
25. class與struct的區別?
26. 虛函數和純虛函數
27. menset()函數
28.實現一個函數,對一個正整數n,算獲得1須要的最少操做次數。操做規則爲:若是n爲偶數,將其除以2;若是n爲奇數,能夠加1或減1;一直處理下去。
29. 找到知足條件的數組
30. 一個大的含有50M個URL的記錄,一個小的含有500個URL的記錄,找出兩個記錄裏相同的URL
31.海量日誌數據,提取出某日訪問百度次數最多的那個IP
32. 有10個文件,每一個文件1G,每一個文件的每一行都存放的是用戶的query,每一個文件的query均可能重複。如何按照query的頻度排序?
33. 螞蟻爬杆問題
34. 當在瀏覽器中輸入一個url後回車,後臺發生了什麼?好比輸入url後,你看到了百度的首頁,那麼這一切是如何發生的呢?
35. 判斷兩棵樹是否相等,請實現兩棵樹是否相等的比較,相等返回1,不然返回其餘值,並說明算法複雜度
36.三個警察和三個囚徒的過河問題
37. 從300萬字符串中找到最熱門的10條
38. 如何找出字典中的兄弟單詞。給定一個單詞a,若是經過交換單詞中字母的順序能夠獲得另外的單詞b,那麼定義b是a的兄弟單詞。如今給定一個字典,用戶輸入一個單詞,如何根據字典找出這個單詞有多少個兄弟單詞?
39. 找出數組中出現次數超過一半的數,如今有一個數組,已知一個數出現的次數超過了一半,請用O(n)的複雜度的算法找出這個數。
40. 找出被修改過的數字
41. 設計DNS服務器中cache的數據結構。要求設計一個DNS的Cache結構,要求可以知足每秒5000以上的查詢,知足IP數據的快速插入,查詢的速度要快。(題目還給出了一系列的數據,好比:站點數總共爲5000萬,IP地址有1000萬,等等)
42. 找出給定字符串對應的序號
43. 找出第k大的數字所在的位置。寫一段程序,找出數組中第k大小的數,輸出數所在的位置。例如{2,4,3,4,7}中,第一大的數是7,位置在4。第二大、第三大的數都是4,位置在一、3隨便輸出哪個都可。
44. 給40億個不重複的unsigned int的整數,沒排過序的,而後再給幾個數,如何快速判斷這幾個數是否在那40億個數當中?
45. 在一個文件中有10G個整數,亂序排列,要求找出中位數。內存限制爲2G。
46. 時分秒針在一天之類重合多少次?(24小時)
47. 將多個集合合併成沒有交集的集合。
48. 平面內有11個點,由它們連成48條不一樣的直線,由這些點可連成多少個三角形?

今日頭條面試題

1.我的去一個海島尋寶,最後一共找到了100枚金幣。他們約定了一個分配方案。
2. 給你一個有序整數數組,數組中的數能夠是正數、負數、零,請實現一個函數,這個函數返回一個整數:返回這個數組全部數的平方值中有多少種不一樣的取值。
3. 一個環有10個節點,編號0-9。從0點出發,走N步又能回到0點,共有多少種走法?
4. 一個亂序數組,求第K大的數。排序方式使用字典序。
5. 一棵二叉樹,求最大通路長度。(即最大左右子樹高度之和)
6. 進程和線程的區別,使用線程真的能節省時間?
7. go協程的調度方式,使用協程真的能節省時間?
8. 水平觸發邊沿觸發的區別?在邊沿觸發下,一個socket有500的數據,已讀取200而後再也不處理,是否是剩下的300就永遠沒法讀取?
9.有函數以下,輸入1,返回什麼?
10 設計http協議,A端發送 AAAA,至少讓B端知道AAAA已發送完成。
11. 流量總入口爲api_gateway,api_gateway掛了會致使所有掛掛,用什麼機制增大可用性?
12. mysql爲何要用b+樹,不用平衡二叉樹作索引結構?
13. 建立數據庫索引應該怎麼考慮?
14. 使用int 作primary key和使用string 有什麼優劣?
15. 數據庫分表的方法?
16. 表結構,訂單紀錄以下,寫一個語句,求賣的最好的 top 10 product_id。
17. 微服務,A服務請求B服務B1接口,B1接口又請求A服務A2接口。會不會有問題?
18.不使用高級工具,只使用Linux自帶的工具,你會如何debug?
19. 如何預估一個mysql語句的性能?
20.go函數中,返回值未命名,發生了panic,可是在函數內recover了。函數返回什麼值?
21. socket中,在tcp協議層面,數據分爲10個報文發放。1-7次很順利,第8次丟失。此次通訊必定失敗嗎?若是第8次數據會重發,那在接收端是否是:先讀取到1-7次的數據,而後讀取到8-10次的數據?仍是9-10次的數據會先到達?
22. free -h,buffers 和cached有什麼不一樣
23. 後臺進程有什麼特色,若是要你設計一個進程是後臺進程,你會考慮什麼
24.殭屍進程是什麼,若是產生一個殭屍進程,如何查找殭屍進程
25.孤兒進程是什麼
26.一個進程有20個線程,在某個線程中調用fork,新的進程會有20個線程嗎?
27. tcp/ip 流量控制和擁塞控制
28. 301/302有什麼區別?應用上有什麼異同。
29. 50X相關錯誤碼的內涵是什麼?
30. close wait和time wait是什麼?如何排查?有什麼意義?
31. http req和resp的中數據有哪些
32. 什麼是鏈接的半打開,半關閉狀態
33. 假如一個業務依賴單點redis,此redis故障將致使業務不可用,如何改進
34. redis sharding有哪些作法
34. 當大量數據要求用redis保存,單機單點難以知足須要,設計(換尋找)一個負載均衡的方案
36. 當redis 採用hash作sharding,如今有8個節點,負載方案是 pos = hash(key) % 8,而後保存在pos節點上。這樣作有什麼好處壞處?當8個節點要擴充到10個節點,應該怎麼辦?有什麼更方便擴充的方案嗎?(一致性hash, presharding)
37. 如何保證redis和數據庫數據的一致性。好比用戶名既保存在數據庫,又保存在redis作緩存。有以下操做 update_db(username); update_redis(username)。可是執行update_db後故障,update_redis沒有執行。有什麼簡單辦法解決這個問題。

最後

歡迎你們關注個人公衆號【程序員追風】,文章都會在裏面更新,整理的資料也會放在裏面。
相關文章
相關標籤/搜索