9月最新184道阿里、百度、騰訊、頭條Java面試題合集(小結(jié))

阿里面試題
1. 如何實現(xiàn)一個高效的單向鏈表逆序輸出?
2. 已知sqrt(2)約等于1.414,要求不用數(shù)學(xué)庫,求sqrt(2)精確到小數(shù)點后10位
3. 給定一個二叉搜索樹(BST),找到樹中第 K 小的節(jié)點
4. LRU緩存機(jī)制
5. 關(guān)于epoll和select的區(qū)別,以下哪些說法是正確的
6. 從innodb的索引結(jié)構(gòu)分析,為什么索引的 key 長度不能太長
7. MySQL的數(shù)據(jù)如何恢復(fù)到任意時間點?
8. NFS 和 SMB 是最常見的兩種 NAS(Network Attached Storage)協(xié)議,當(dāng)把一個文件系統(tǒng)同時通過 NFS 和 SMB 協(xié)議共享給多個主機(jī)訪問時,以下哪些說法是錯誤的
9. 輸入 ping IP 后敲回車,發(fā)包前會發(fā)生什么?
10. 請解釋下為什么鹿晗發(fā)布戀情的時候,微博系統(tǒng)會崩潰,如何解決?
11. 現(xiàn)有一批郵件需要發(fā)送給訂閱顧客,且有一個集群(集群的節(jié)點數(shù)不定,會動態(tài)擴(kuò)容縮容)來負(fù)責(zé)具體的郵件發(fā)送任務(wù),如何讓系統(tǒng)盡快地完成發(fā)送?
12. 有一批氣象觀測站,現(xiàn)需要獲取這些站點的觀測數(shù)據(jù),并存儲到 Hive 中。但是氣象局只提供了 api 查詢,每次只能查詢單個觀測點。那么如果能夠方便快速地獲取到所有的觀測點的數(shù)據(jù)?
13. 如何實現(xiàn)兩金額數(shù)據(jù)相加(最多小數(shù)點兩位)
14. 關(guān)于并行計算的一些基礎(chǔ)開放問題
15. 請計算XILINX公司VU9P芯片的算力相當(dāng)于多少TOPS,給出計算過程與公式
16.一顆現(xiàn)代處理器,每秒大概可以執(zhí)行多少條簡單的MOV指令,有哪些主要的影響因素
17.請分析 MaxCompute 產(chǎn)品與分布式技術(shù)的關(guān)系、當(dāng)前大數(shù)據(jù)計算平臺類產(chǎn)品的市場現(xiàn)狀和發(fā)展趨勢
18. 對大數(shù)據(jù)平臺中的元數(shù)據(jù)管理是怎么理解的,元數(shù)據(jù)收集管理體系是怎么樣的,會對大數(shù)據(jù)應(yīng)用有什么樣的影響
19.你理解常見如阿里,和友商大數(shù)據(jù)平臺的技術(shù)體系差異以及發(fā)展趨勢和技術(shù)瓶頸,在存儲和計算兩個方面進(jìn)行概述
20. 在云計算大數(shù)據(jù)處理場景中,每天運行著成千上萬的任務(wù),每個任務(wù)都要進(jìn)行 IO 讀寫。存儲系統(tǒng)為了更好的服務(wù),經(jīng)常會保證高優(yōu)先級的任務(wù)優(yōu)先執(zhí)行。當(dāng)多個作業(yè)或用戶訪問存儲系統(tǒng)時,如何保證優(yōu)先級和公平性
21. 最大頻率棧
22. 給定一個鏈表,刪除鏈表的倒數(shù)第N個節(jié)點,并且返回鏈表的頭結(jié)點
23. 如果讓你設(shè)計一個通用的、支持各種數(shù)據(jù)庫秒級備份和恢復(fù)的系統(tǒng),你會如何設(shè)計
24. 如果讓你來設(shè)計一個支持?jǐn)?shù)據(jù)庫、NOSQL 和大數(shù)據(jù)之間數(shù)據(jù)實時流動的數(shù)據(jù)流及處理的系統(tǒng),你會考慮哪些問題?如何設(shè)計?
25. 給定一個整數(shù)數(shù)組和一個整數(shù),返回兩個數(shù)組的索引,這兩個索引指向的數(shù)字的加和等于指定的整數(shù)。需要最優(yōu)的算法,分析算法的空間和時間復(fù)雜度
26.假如給你一個新產(chǎn)品,你將從哪些方面來保障它的質(zhì)量?
27. 請評估一下程序的執(zhí)行結(jié)果?
騰訊面試題
Java基礎(chǔ)
1. JAVA中的幾種基本數(shù)據(jù)類型是什么,各自占用多少字節(jié)。
2. String類能被繼承嗎,為什么。
3.String,Stringbuffer,StringBuilder的區(qū)別。
4. ArrayList和LinkedList有什么區(qū)別。
5. 講講類的實例化順序,比如父類靜態(tài)數(shù)據(jù),構(gòu)造函數(shù),字段,子類靜態(tài)數(shù)據(jù),構(gòu)造函數(shù),字段,當(dāng)new的時候,他們的執(zhí)行順序。
6. 用過哪些Map類,都有什么區(qū)別,HashMap是線程安全的嗎,并發(fā)下使用的Map是什么,他們內(nèi)部原理分別是什么,比如存儲方式,hashcode,擴(kuò)容,默認(rèn)容量等。
7.JAVA8的ConcurrentHashMap為什么放棄了分段鎖,有什么問題嗎,如果你來設(shè)計,你如何設(shè)計。
8. 有沒有有順序的Map實現(xiàn)類,如果有,他們是怎么保證有序的。
9. 抽象類和接口的區(qū)別,類可以繼承多個類么,接口可以繼承多個接口么,類可以實現(xiàn)多個接口么。
10. 繼承和聚合的區(qū)別在哪。
11. IO模型有哪些,講講你理解的nio ,他和bio,aio的區(qū)別是啥,談?wù)剅eactor模型。
12. 反射的原理,反射創(chuàng)建類實例的三種方式是什么。
13. 反射中,Class.forName和ClassLoader區(qū)別 。
14.描述動態(tài)代理的幾種實現(xiàn)方式,分別說出相應(yīng)的優(yōu)缺點。
15.動態(tài)代理與cglib實現(xiàn)的區(qū)別。
16. 為什么CGlib方式可以對接口實現(xiàn)代理。
17.final的用途。
18.寫出三種單例模式實現(xiàn) 。
19.如何在父類中為子類自動完成所有的hashcode和equals實現(xiàn)?這么做有何優(yōu)劣。
20. 請結(jié)合OO設(shè)計理念,談?wù)勗L問修飾符public、private、protected、default在應(yīng)用設(shè)計中的作用。
21. 深拷貝和淺拷貝區(qū)別。
22.數(shù)組和鏈表數(shù)據(jù)結(jié)構(gòu)描述,各自的時間復(fù)雜度。
23. error和exception的區(qū)別,CheckedException,RuntimeException的區(qū)別。
24. 請列出5個運行時異常。
25. 在自己的代碼中,如果創(chuàng)建一個java.lang.String類,這個類是否可以被類加載器加載?為什么。
26. 說一說你對java.lang.Object對象中hashCode和equals方法的理解。在什么場景下需要重新實現(xiàn)這兩個方法。
27.在jdk1.5中,引入了泛型,泛型的存在是用來解決什么問題。
28. 這樣的a.hashcode() 有什么用,與a.equals(b)有什么關(guān)系。
29. 有沒有可能2個不相等的對象有相同的hashcode。
30. Java中的HashSet內(nèi)部是如何工作的。
31.什么是序列化,怎么序列化,為什么序列化,反序列化會遇到什么問題,如何解決。
32. java8的新特性。
JVM
33.什么情況下會發(fā)生棧內(nèi)存溢出。
34. JVM的內(nèi)存結(jié)構(gòu),Eden和Survivor比例。
35. JVM內(nèi)存為什么要分成新生代,老年代,持久代。新生代中為什么要分為Eden和Survivor。
36.JVM中一次完整的GC流程是怎樣的,對象如何晉升到老年代,說說你知道的幾種主要的JVM參數(shù)。
37.你知道哪幾種垃圾收集器,各自的優(yōu)缺點,重點講下cms和G1,包括原理,流程,優(yōu)缺點。
38. 垃圾回收算法的實現(xiàn)原理。
39. 當(dāng)出現(xiàn)了內(nèi)存溢出,你怎么排錯。
40.JVM內(nèi)存模型的相關(guān)知識了解多少,比如重排序,內(nèi)存屏障,happen-before,主內(nèi)存,工作內(nèi)存等。
41.簡單說說你了解的類加載器,可以打破雙親委派么,怎么打破。
42. 講講JAVA的反射機(jī)制。
43. 你們線上應(yīng)用的JVM參數(shù)有哪些。
44.g1和cms區(qū)別,吞吐量優(yōu)先和響應(yīng)優(yōu)先的垃圾收集器選擇。
45. 怎么打出線程棧信息。
開源框架
46. 簡單講講tomcat結(jié)構(gòu),以及其類加載器流程,線程模型等。
47. tomcat如何調(diào)優(yōu),涉及哪些參數(shù) 。
48. 講講Spring加載流程。
49. Spring AOP的實現(xiàn)原理。
50.講講Spring事務(wù)的傳播屬性。
51. Spring如何管理事務(wù)的。
52. Spring怎么配置事務(wù)(具體說出一些關(guān)鍵的xml 元素)。
53 說說你對Spring的理解,非單例注入的原理?它的生命周期?循環(huán)注入的原理,aop的實現(xiàn)原理,說說aop中的幾個術(shù)語,它們是怎么相互工作的。
54. Springmvc 中DispatcherServlet初始化過程。
55. netty的線程模型,netty如何基于reactor模型上實現(xiàn)的。
56. 為什么選擇netty。
57. 什么是TCP粘包,拆包。解決方式是什么。
58.netty的fashwheeltimer的用法,實現(xiàn)原理,是否出現(xiàn)過調(diào)用不夠準(zhǔn)時,怎么解決。
59. netty的心跳處理在弱網(wǎng)下怎么辦。
60. netty的通訊協(xié)議是什么樣的。
61. springmvc用到的注解,作用是什么,原理。
62. springboot啟動機(jī)制。
操作系統(tǒng)
63. Linux系統(tǒng)下你關(guān)注過哪些內(nèi)核參數(shù),說說你知道的。
64. Linux下IO模型有幾種,各自的含義是什么。
65. epoll和poll有什么區(qū)別。
66. 平時用到哪些Linux命令。
67. 用一行命令查看文件的最后五行。
68. 用一行命令輸出正在運行的java進(jìn)程。
69. 介紹下你理解的操作系統(tǒng)中線程切換過程。
70. 進(jìn)程和線程的區(qū)別。
71. top 命令之后有哪些內(nèi)容,有什么作用。
72. 線上CPU爆高,請問你如何找到問題所在。
百度面試題
1.在函數(shù)內(nèi)定義一個字符數(shù)組,用gets函數(shù)輸入字符串的時候,如果輸入越界,為什么程序會崩潰?
2.C++中引用與指針的區(qū)別
3. C/C++程序的內(nèi)存分區(qū)
4. 快速排序的思想、時間復(fù)雜度、實現(xiàn)以及優(yōu)化方法
5.IO模型——IO多路復(fù)用機(jī)制?
6. 常用的Linux命令
7. C中變量的存儲類型有哪些?
8. 動態(tài)規(guī)劃的本質(zhì)
9. 實踐中如何優(yōu)化MySQL?
10. 什么情況下設(shè)置了索引但無法使用?
11. SQL語句的優(yōu)化
12. 數(shù)據(jù)庫索引的底層實現(xiàn)原理和優(yōu)化
13. HTTP和HTTPS的主要區(qū)別?
14. 如何設(shè)計一個高并發(fā)的系統(tǒng)?
15. 兩條相交的單向鏈表,如何求他們的第一個公共節(jié)點?
16. 求單向局部循環(huán)鏈表的環(huán)入口?
17. IP地址如何在數(shù)據(jù)庫中存儲?
18. new/delete和malloc/free的底層實現(xiàn)?
19.overload、override、overwrite的介紹?
20.小端/大端機(jī)器?
21. 守護(hù)進(jìn)程
22. 多線程的優(yōu)缺點
23. 長連接與短連接
24. 二分圖應(yīng)用于最佳匹配問題(游客對房間的滿意度之和最大問題)
25. class與struct的區(qū)別?
26. 虛函數(shù)和純虛函數(shù)
27. menset()函數(shù)
28.實現(xiàn)一個函數(shù),對一個正整數(shù)n,算得到1需要的最少操作次數(shù)。操作規(guī)則為:如果n為偶數(shù),將其除以2;如果n為奇數(shù),可以加1或減1;一直處理下去。
29. 找到滿足條件的數(shù)組
30. 一個大的含有50M個URL的記錄,一個小的含有500個URL的記錄,找出兩個記錄里相同的URL
31.海量日志數(shù)據(jù),提取出某日訪問百度次數(shù)最多的那個IP
32. 有10個文件,每個文件1G,每個文件的每一行都存放的是用戶的query,每個文件的query都可能重復(fù)。如何按照query的頻度排序?
33. 螞蟻爬桿問題
34. 當(dāng)在瀏覽器中輸入一個url后回車,后臺發(fā)生了什么?比如輸入url后,你看到了百度的首頁,那么這一切是如何發(fā)生的呢?
35. 判斷兩棵樹是否相等,請實現(xiàn)兩棵樹是否相等的比較,相等返回1,否則返回其他值,并說明算法復(fù)雜度
36.三個警察和三個囚徒的過河問題
37. 從300萬字符串中找到最熱門的10條
38. 如何找出字典中的兄弟單詞。給定一個單詞a,如果通過交換單詞中字母的順序可以得到另外的單詞b,那么定義b是a的兄弟單詞?,F(xiàn)在給定一個字典,用戶輸入一個單詞,如何根據(jù)字典找出這個單詞有多少個兄弟單詞?
39. 找出數(shù)組中出現(xiàn)次數(shù)超過一半的數(shù),現(xiàn)在有一個數(shù)組,已知一個數(shù)出現(xiàn)的次數(shù)超過了一半,請用O(n)的復(fù)雜度的算法找出這個數(shù)。
40. 找出被修改過的數(shù)字
41. 設(shè)計DNS服務(wù)器中cache的數(shù)據(jù)結(jié)構(gòu)。要求設(shè)計一個DNS的Cache結(jié)構(gòu),要求能夠滿足每秒5000以上的查詢,滿足IP數(shù)據(jù)的快速插入,查詢的速度要快。(題目還給出了一系列的數(shù)據(jù),比如:站點數(shù)總共為5000萬,IP地址有1000萬,等等)
42. 找出給定字符串對應(yīng)的序號
43. 找出第k大的數(shù)字所在的位置。寫一段程序,找出數(shù)組中第k大小的數(shù),輸出數(shù)所在的位置。例如{2,4,3,4,7}中,第一大的數(shù)是7,位置在4。第二大、第三大的數(shù)都是4,位置在1、3隨便輸出哪一個均可。
44. 給40億個不重復(fù)的unsigned int的整數(shù),沒排過序的,然后再給幾個數(shù),如何快速判斷這幾個數(shù)是否在那40億個數(shù)當(dāng)中?
45. 在一個文件中有10G個整數(shù),亂序排列,要求找出中位數(shù)。內(nèi)存限制為2G。
46. 時分秒針在一天之類重合多少次?(24小時)
47. 將多個集合合并成沒有交集的集合。
48. 平面內(nèi)有11個點,由它們連成48條不同的直線,由這些點可連成多少個三角形?
今日頭條面試題
1.個人去一個海島尋寶,最后一共找到了100枚金幣。他們約定了一個分配方案。
2. 給你一個有序整數(shù)數(shù)組,數(shù)組中的數(shù)可以是正數(shù)、負(fù)數(shù)、零,請實現(xiàn)一個函數(shù),這個函數(shù)返回一個整數(shù):返回這個數(shù)組所有數(shù)的平方值中有多少種不同的取值。
3. 一個環(huán)有10個節(jié)點,編號0-9。從0點出發(fā),走N步又能回到0點,共有多少種走法?
4. 一個亂序數(shù)組,求第K大的數(shù)。排序方式使用字典序。
5. 一棵二叉樹,求最大通路長度。(即最大左右子樹高度之和)
6. 進(jìn)程和線程的區(qū)別,使用線程真的能節(jié)省時間?
7. go協(xié)程的調(diào)度方式,使用協(xié)程真的能節(jié)省時間?
8. 水平觸發(fā)邊沿觸發(fā)的區(qū)別?在邊沿觸發(fā)下,一個socket有500的數(shù)據(jù),已讀取200然后不再處理,是不是剩下的300就永遠(yuǎn)無法讀取?
9.有函數(shù)如下,輸入1,返回什么?
10 設(shè)計http協(xié)議,A端發(fā)送 AAAA,至少讓B端知道AAAA已發(fā)送完成。
11. 流量總?cè)肟跒閍pi_gateway,api_gateway掛了會導(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ì)錄如下,寫一個語句,求賣的最好的 top 10 product_id。
17. 微服務(wù),A服務(wù)請求B服務(wù)B1接口,B1接口又請求A服務(wù)A2接口。會不會有問題?
18.不使用高級工具,只使用Linux自帶的工具,你會如何debug?
19. 如何預(yù)估一個mysql語句的性能?
20.go函數(shù)中,返回值未命名,發(fā)生了panic,但是在函數(shù)內(nèi)recover了。函數(shù)返回什么值?
21. socket中,在tcp協(xié)議層面,數(shù)據(jù)分為10個報文發(fā)放。1-7次很順利,第8次丟失。這次通信一定失敗嗎?如果第8次數(shù)據(jù)會重發(fā),那在接收端是不是:先讀取到1-7次的數(shù)據(jù),然后讀取到8-10次的數(shù)據(jù)?還是9-10次的數(shù)據(jù)會先到達(dá)?
22. free -h,buffers 和cached有什么不同
23. 后臺進(jìn)程有什么特點,如果要你設(shè)計一個進(jìn)程是后臺進(jìn)程,你會考慮什么
24.僵尸進(jìn)程是什么,如果產(chǎn)生一個僵尸進(jìn)程,如何查找僵尸進(jìn)程
25.孤兒進(jìn)程是什么
26.一個進(jìn)程有20個線程,在某個線程中調(diào)用fork,新的進(jìn)程會有20個線程嗎?
27. tcp/ip 流量控制和擁塞控制
28. 301/302有什么區(qū)別?應(yīng)用上有什么異同。
29. 50X相關(guān)錯誤碼的內(nèi)涵是什么?
30. close wait和time wait是什么?如何排查?有什么意義?
31. http req和resp的中數(shù)據(jù)有哪些
32. 什么是連接的半打開,半關(guān)閉狀態(tài)
33. 假如一個業(yè)務(wù)依賴單點redis,此redis故障將導(dǎo)致業(yè)務(wù)不可用,如何改進(jìn)
34. redis sharding有哪些做法
34. 當(dāng)大量數(shù)據(jù)要求用redis保存,單機(jī)單點難以滿足需要,設(shè)計(換尋找)一個負(fù)載均衡的方案
36. 當(dāng)redis 采用hash做sharding,現(xiàn)在有8個節(jié)點,負(fù)載方案是 pos = hash(key) % 8,然后保存在pos節(jié)點上。這樣做有什么好處壞處?當(dāng)8個節(jié)點要擴(kuò)充到10個節(jié)點,應(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í)行。有什么簡單辦法解決這個問題。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
- 這篇文章主要介紹了兩道阿里python面試題與參考答案,結(jié)合具體實例形式分析了Python數(shù)組創(chuàng)建、遍歷、拆分及隨機(jī)數(shù)等相關(guān)操作技巧,需要的朋友可以參考下2019-09-02
2019 金三銀四:阿里P9架構(gòu)的Android大廠面試題總結(jié)
面試是一道坎,很多人會恐懼面試,即使是工作很多年的老鳥,可能仍存在面試的焦慮。 今天介紹了阿里P9架構(gòu)的Android大廠面試題總結(jié)的相關(guān)資料,小編覺得挺不錯的,現(xiàn)在分2019-05-052019年成功入職阿里:阿里的三套Java研發(fā)崗面試題總結(jié)
之前過了幾個簡單的簡歷面,所以總結(jié)了幾套面試的試題供大家分享。小編覺得挺不錯的,也給大家做個參考。一起跟隨小編過來看看吧2019-04-25精選11道Java技術(shù)面試題及對應(yīng)答案【包含部分阿里和華為的面試題】
這篇文章主要為大家介紹了11道Java技術(shù)面試題及對應(yīng)答案,其中包含部分阿里和華為的面試題,總結(jié)分析了java常見的技術(shù)難點與java常見面試題,需要的朋友可以參考下2019-04-11- 這是一道真真實實的阿里面試題:“請解釋下為什么鹿晗發(fā)布戀情的時候, 微博系統(tǒng)會崩潰,如何解決2019-09-16