從業十多年,我從一位嚮往大廠的面試者成為了一個大廠面試官,身邊很多從事Java
開發的朋友都不時諮詢如何才能進大廠。的確,進大廠對於大多數人來說,絕不只是談資,而是一種技術追求。像阿里、騰訊、位元組這樣的大廠,技術氛圍和技術規範都明顯優於體量較小的公司,業務場景也更加豐富、更具挑戰性。在大廠鍛鍊幾年,可以更好地提升個人能力,對以後的職業規劃也有更多選擇。
話雖如此,要拿到大廠offer並不容易。簡歷投遞如同大浪淘沙,面試過程也是競爭激烈。特殊時期大廠需求降低,要求反而更高。沒有十足準備,很難通過層層篩選。不少Java人的問題並不是技術功底不過關,而是沒有形成系統、全面的知識體系,總是被面試官問得啞口無言。
結合自己多年電商大廠面試官的經歷,我將這些年常問的知識點從頭梳理,整理成100道電商大廠核心面試題,涵蓋了大廠必考點、高頻點和漲薪點,相信對大家準備面試會有一定幫助,也能解決一部分開發人在日常專案中遇到的問題。
這些點一共分成 5 大類,分別是:Dubbo,ElasticSearch,JVM,多執行緒/高並行,訊息中介軟體 。我把關於這些問題的拆解與思考,整理成一個 pdf,限於篇幅,這裡就不一一列出了。
面試多家網際網路公司做下了筆記比較全面的,覺得挺不錯的,現在分享給大家,也給大家做個參考。由於篇幅有限,以下只展示小部分面試題,有需要完整版的朋友可以點一點連結跳轉領取:連結:點選即可!!!暗號:CSDN
這裡先羅列出近三年部分技術考核點,具體有:
1.1 服務呼叫超時問題怎麼解決?
1.2 Dubbo支援哪些序列化方式?
1.3 Dubbo和SpringCloud的關係?
1.4 Dubbo的架構設計?一共劃分了哪些層?
1.5 Dubbo的預設叢集容錯方案?
1.6 Dubbo使用的是什麼通訊框架?
1.7 Dubbo的主要應用場景?
1.8 Dubbo服務註冊與發現的流程?流程說明。
1.9 Dubbo的叢集容錯方案有哪些?
1.10 Dubbo的四大元件
1.11 Dubbo在安全機制方面是如何解決的
1.12 Dubbo和SpringCloud的區別?
1.13 Dubbo支援哪些協定,每種協定的應用場景,優缺點?
1.14 Dubbo的核心功能有哪些?
1.15 Dubbo的註冊中心叢集掛掉,釋出者和訂閱者之間還能通訊麼?
1.16 Dubbo叢集的負載均衡有哪些策略
1.17 為什麼需要服務治理?
1.18 Dubbo超時時間怎樣設定?
2.1 你們公司的ES叢集,一個node一般會分配幾個分片?
2.2 Elasticsearch是如何實現Master選舉的?
2.3 你是如何做寫入調優的?
2.4 如何避免腦裂?
2.5 19-Elasticsearch對於巨量資料量(上億量級)的聚合如何實現?
2.6 ES主分片數量可以在後期更改嗎?為什麼?
2.7 如何監控叢集狀態?
2.8 ElasticSearch中的副本是什麼?
2.9 20.ES更新資料的執行流程?
2.10 shard裡面是什麼組成的?
2.11 ElasticSearch中的分析器是什麼?
2.12 什麼是腦裂?
2.13 使用者端在和叢集連線時,如何選擇特定的節點執行請求的?
2.14 Elasticsearch中的倒排索引是什麼?
2.15 什麼是索引?索引(名詞) 一個索引(index)
2.16 詳細描述一下Elasticsearch更新和刪除檔案的過程
3.1 JVM引數主要有⼏種分類
3.2 3.Java中會存在記憶體漏失嗎,簡述一下。
3.3 Java虛擬機器器是如何判定兩個Java類是相同的?
3.4 Java 中都有哪些參照型別
3.5 在 Java 中,物件什麼時候可以被垃圾回收?
3.6 19.StackOverflow異常有沒有遇到過?一般你猜測會在什麼情況下被觸發?
3.7 堆空間分哪些部分?以及如何設定各個部分?
3.8 什麼是棧幀?棧幀儲存了什麼?
3.9 如何設定引數生成GC紀錄檔?
3.10 GC 是什麼?為什麼要有 GC?
3.12 使用過哪些jdk命令,並說明各個的作用是什麼
3.13 JVM執行時資料區區域分為哪⼏部分?
3.14 是否瞭解類載入器雙親委派模型機制和破壞雙親委派模型?
3.15 逃逸分析有幾種型別?
3.16 -Xms這些引數的含義是什麼?
3.17 你知道哪幾種垃圾收集器,各自的優缺點,重點講下cms和G1,包括原理,流程,優缺點。
3.18 JVM的記憶體結構,Eden和Survivor比例是多少?
4.1 負載平衡的意義什麼?
4.2 請說出同步執行緒及執行緒排程相關的方法?
4.3 關於epoll和select的區別,哪些說法 是正確的?(多選)
A. epoll 和 select 都是 I/O 多路複用的技術,都可以實現同時監聽 多個I/O事件的狀態。
B. epoll 相比 select 效率更高,主要是基於其作業系統支援的 I/O 事件通知機制,而select是基於輪詢機制。
C. epoll支援水平觸發和邊沿觸發兩種模式。
D. select能並行支援I/O比較小,且無法修改。
4.4 啟動一個執行緒是呼叫run()方法還是start()方法?
4.5 如何確保N個執行緒可以存取N個資源同時又不導致死鎖?
4.6 編寫多執行緒程式的幾種實現方式(換個問法:建立多執行緒的方式)?
4.7 執行緒和程序的區別?
4.8 什麼是執行緒池,有哪些常用執行緒池?
4.9 什麼是死鎖?
4.10 怎麼保證快取和資料庫資料的一致性?
5.1 消費者獲取訊息有幾種模式?
5.2 17.RocketMQ的特點有哪些?
5.3 kafka 同時設定了 7 天和 10G 清除資料,到第五天的時候訊息達到了 10G,這個時候 kafka將如何處理?
5.4 為何需要Kafka叢集
5.5 Kafka 資料儲存設計
5.6 Kafka如何判斷一個節點是否存活?
5.7 kafka訊息傳送的可靠性機制有幾種
5.8 請詳細說一下推播模式和拉取模式。
5.9 Kafka 與傳統訊息系統之間有三個關鍵區別
5.10 RocketMQ 由哪些角色組成?
5.12 23.Kafka的消費者如何消費資料
5.13 Kafka的優點
5.14 Kafka 的設計是什麼樣的呢?
5.15 說說你對Consumer的瞭解?
5.16 Kafka新建的分割區會在哪個目錄下建立
5.17 說一下Kafka消費者消費過程
5.18 介紹下Kafka
5.19 什麼情況會導致Kafka執行變慢?
這些點一共分成 5 大類,分別是:Dubbo,ElasticSearch,JVM,多執行緒/高並行,訊息中介軟體 。我把關於這些問題的拆解與思考,整理成一個 pdf,限於篇幅,這裡就不一一列出了。