阿里京东滴滴等大厂面试题汇总
文章目錄
- 11月面:京東一面【京東云與AI-協同辦公】:
- 京東一面現場面【京東云與AI-平臺創新組】:
- 京東二面:
- 11月面:滴滴視頻面【橙心優選】:
- 11月面:國美零售【大數據-搜索組】
- 8月面:阿里一面【叮叮】
- 2月面:阿里一面【菜鳥網絡】
- 阿里筆試題
- 4月面:58一面【轉轉】
- 2月面:丁香醫生【搜索】
- 朋友的面試題
- 啊申-融360筆試題
- Kyushu-字節跳動面試題
- Kyushu-百度終面筆試題
- 出鞘-京東3c事業部
- 出鞘-面試了京東、滴滴、火花思維、理想汽車
- 其他
- 美團
- 一面
- 二面
- 騰訊
- 一面
- 二面
- 三面
- 四面
- 阿里
- 一面
- 二面和三面
11月面:京東一面【京東云與AI-協同辦公】:
1.equal相同hashcode相同?hashcode相同equal就一定相同?
2.線程五種狀態?五種狀態怎么變化的?
3.同一個線程重復調用start方法會產生什么情況?
4,mybatis二級緩存?
5.springmvc請求處理流程?
6.dubbo處理流程?
7.final作用,final作用到類上會這樣?
8.threadpoolexecutor?給你出個核心線程數,最大線程數,然后阻塞隊列發現,問多少個任務過來線程池處理的流程?
9.為什么方法返回值不能作為重載?
10.nginx反向代理?那么什么叫正向代理?
京東一面現場面【京東云與AI-平臺創新組】:
1.線程池參數?底層如何設計對?線程幾種狀態?源碼Thread狀態枚舉類對應對類型,什么時候觸發?
2.springboot啟動流程
3.springmvc請求流程,前段請求到后端過程分析
4.并發場景如何解決?
5.項目中遇到哪些問題?問架構
6.JVM了解的深度?垃圾回收器?線上JVM調優以及遇到哪些坑,如何解決?
7.聊dubbo SPI設計
8.問MySQL了解的深度?慢查詢優化?
筆試題:
給你兩個鏈表求第一個交叉點?
京東二面:
—自我介紹+項目詳細介紹(估計就是看你項目的真實情況,問的業務細節比較多)
1.hashmap底層實現原理,什么時候會變成紅黑樹等等 就是按照原理問的
2.java多態(重載重寫區別)
3.jvm如何排查現場問題(內存溢出問題,線程池超出問題),在沒有線上排查工具的時候排查過程是什么樣的
4.redis數據類型
5.redis應用場景有哪些
6.線程池原理,經常用哪些線程池,為什么
7.并發場景,重入鎖和同步鎖
8.redis為什么這么快(除了多路復用)
9.mysql做過哪些優化 為什么
10.mysql索引都用過哪幾種,用索引排查思路
11.分庫分表 主鍵生成策略有哪幾種,為什么常用自增
12.分布式鎖 了解哪幾種 ,比如redis,zookeeper 怎么實現的
13.kafka 存儲模型是什么樣的。kafka自身如何保證不丟數據
14.kafka消息擠壓怎么處理,怎么產生的消息擠壓
11月面:滴滴視頻面【橙心優選】:
1.問抓取遇到的問題?redis list?
2.線程:如何用線程池?線程池內部處理流程了解?線程數配置?io密集型?CPU密集型?線程池核心線程數、最大線程數阻塞隊列等配置?
3.鎖:說一下你知道的鎖?synchronized原理?使用場景?CAS應用場景?CAS缺點、問題?如何解決?AQS內部實現?CountdownLatch和CyclicBarrier主線程和子線程哪個線程等待?
4.JMM內存模型介紹,每個模型對應的作用?JVM了解多少?垃圾回收算法?講一下GC收集器?CMS收集器?
5.事務基本特性
筆試題:
共享桌面用idea寫二分查詢并運行
11月面:國美零售【大數據-搜索組】
一面:
1.redis五種基本數據類型
2.redis為什么那么快
3.es和solr區別
5.搜索項目qps、數據量、架構說下
6.說一下tfidf和bm25
7.hashmap jdk8做過哪些優化
8.抓取動態頁如何失效,怎么區分動態靜態頁,講一下你們抓取項目,如何維護種子頁?rpush,lpoll
9.多線程了解?Future、threadpool、Forkjoin、semaphore、countdownlatch
二面:
1.JVM內存模型
2.垃圾回收器用的哪個
3.gc各個算法
4.redis基本數據類型,應用場景
5.zset底層數據結構
6.lucene底層similary、FunctionQuery原理提供哪些方法,如何實現,你項目怎么使用的
7.lucene的索引文件后綴名介紹,分別有什么作用、查詢為什么快?跳躍表?
8.kafka如何保證順序消費
9.你們搜索項目qps?每天請求量?數據量占用文件多大?內存?
10.你java看的哪本書?
筆試題:
面試官給你畫了平衡二叉樹,給你一個節點怎么查到該節點的父節點,插入思想、寫查詢代碼
8月面:阿里一面【叮叮】
1.搜索引擎lucene架構,底層原理
2.分布式系統如何保證一致性
3.中英文分詞器區別,底層了解?
4.數據如何同步到hdfs?講一下hdfs
5.線程池參數解釋?線程池如何管理線程
6.threadlocal實現原理?父線程threadlocal能在子線程使用?線程池使用threadlocal有什么需要注意的地方?線程復用,上個任務沒有處理掉threadlocal,新的任務會用老的threadlocal?
7.fork join了解?
8.try cache使用時finally有異常會拋出?try中有return,finally只也有return哪個執行?
9.@transactional什么時候會失效?
10.線上出現oom如何排查?
11.平常研究過開源組件?講一下
12.zk分布式鎖實現原理?
13.講一下像kafka生產著消費者模式架構,原理
14.hash碰撞常用解決辦法
2月面:阿里一面【菜鳥網絡】
1.java8新特性?Stream()原理?
2.threadLocal原理?
3.講下Executor?
4.synchronized原理?
5.ThreadPoolExecutor?
6.Fork/join了解?
7.做過jvm調優?
8.介紹布隆過濾器?結合自己應用場景如何設計hash函數?
阿里筆試題
第一題:
用java語言實現隨機金額群紅包,包含紅包創建、紅包領取、查看領取記錄三個功能,隨機金額群紅包指發送人指定紅包碼總金額和個數,領取人根據手氣隨機領到一定金額的紅包;
第二題:
數組A內容為1,2,3,4…78,數組B內容為26個英文字母,請使用兩個線程分別處理兩個數組,向標準輸出打印內容為:123a,456b,789c,91011e,…,767778z。
4月面:58一面【轉轉】
1.String如何轉成int類型? 分析Interger.parseInt()源碼?
2.判斷一個整數是2的多少次冪?
3.redis應用場景?數據結構?持久化?aof重寫機制?淘汰策略?LRU實現?
4.mysql慢查詢優化?底層結構?為什么采用B+樹?
5.kafka應用場景?優點?為什么吞吐量大?缺點?為什么有數據丟失,重寫問題?
6.java為什么設計object類?提供哪些方法?說下wait和sleep區別?為什么一個在object一個在thread中,為什么這么設計?
2月面:丁香醫生【搜索】
1.布隆過濾器
2.linux基本指令?端口號?進程信息?
3.講下solr?
4.TFIDF、BM25?
5.HashMap加載因子多少?底層數據結構?紅黑樹原理?為什么快?時間復雜度?
6.redis io多路復用
7.雙親委派模型
朋友的面試題
啊申-融360筆試題
1.單鏈表變成逆序
2.sql語句現場寫
3.java設計抽獎10%中獎概率
4.單鏈表排序
Kyushu-字節跳動面試題
1.優惠券設計
2.io多路復用
筆試題:
1.手寫觀察者設計模式
2.二叉樹公共祖先節點,兩個數組相同到元素
3.K個一組反轉鏈表
交叉面:
1.kafka: exactly once 經驗
2.LinkedHashMap 內部數據結構
3.ConcurrentHashMap 內部數據結構 擴容:多個線程
筆試題:大數據Code:
微信的用戶登錄日志
User_id,login/logout,timestamp
基于時間單調非遞減排列
求一天的在線用戶峰值和維持時長
最小的額外空間復雜度
T T+1 T+2
IN A B C D
OUT B
問題:設計數據結構
LRU --》 LFU 時間復雜度越低越好
size = N個單
Kyushu-百度終面筆試題
環形鏈表的約瑟夫問題(進階)
限定語言:C、Python、C++、Javascript、Python 3、Java、Go
據說著名猶太歷史學家 Josephus 有過以下故事:在羅馬人占領喬塔帕特后,39 個猶太人與 Josephus 及他的朋友躲到一個洞中,39 個猶太人決定寧愿死也不要被敵人抓到,于是決定了一種自殺方式,41 個人排成一個圓圈,由第 1 個人開始報數,報數到 3 的人就自殺,然后再由下一個人重新報 1,報數到 3 的人再自殺,這樣依次下去,直到剩下最后一個人時,那個人可以自由選擇自己的命運。這就是著名的約瑟夫問題。現在請用單向環形鏈表得出最終存活的人的編號
出鞘-京東3c事業部
二面:
四種單例寫法
juc那幾個 AQS的應用場景
你們日志是怎么統一的?比如duboo服務十臺機器有一臺出錯了,具體哪個包有錯誤怎么看?
mysql 主從復制怎么連接
Spring如何引用對象 四種 ?beanfactory @autowire
如何破壞Spring單例
三面:
1.Spring傳播級別
2.https還有socket 解決黏包問題
3.設計一個排序 用redis,銷量相同時間排序4.dubbo接口擴展設計?我們平時用的接口是不能new 對象的,如何用dubbo實現?dubbo微內核?5.nginx負載均衡
6.spring事物傳播級別
7.事物注解外層沒加事物 里面加了會發生什么?
8.如何解決跨域問題
出鞘-面試了京東、滴滴、火花思維、理想汽車
金三銀四 面試十來家公司包含一二三面的 二十+輪面試碰見的面試問題回答的不好的以及聊尷尬的以及被面試官失望的鄙視的題目記錄**
1、接口限流怎么做 保證1000次訪問 (令牌桶 限流)
2、rocketmq延遲隊列 (說清楚原理 是把消息放到什么里面 18個等級)
3、線程池狀態
4、水平分表主鍵ID如何生成(同一個批次的數據放進去方便查找你可以這樣回復,查詢條件(ID)過來,可以拿出ID的hashcode,然后對現在水平表的數量進行取模,最后可以得到訪問的具體表。)
5、布隆過濾器算法 布隆過濾器其實就是都個hash函數,有則為1,無則為0。過濾的時候,只考慮為 >=1的,其它為0一律忽略。它的缺點就是會有誤傷【有些情況會失敗】
6、filter和 incepter的區別
7、rocketMq 如何保證消息不丟失 (程序員角度考慮,輔助數據庫 記錄消息 消費完刪除,再說一下同步ACK 同步落盤等)
8、保證消息隊列消費的冪等性
拿個數據要寫庫,你先根據主鍵查一下,如果這數據都有了,你就別插入了,update 一下好吧。
寫 Redis,那沒問題了,反正每次都是 set,天然冪等性。
那做的稍微復雜一點,你需要讓生產者發送每條數據的時候,里面加一個全局唯一的 id,類似訂單 id 之類的東西,然后你這里消費到了之后,先根據這個 id 去比如 Redis 里查一下,之前消費過嗎?如果沒有消費過,你就處理,然后這個 id 寫 Redis。如果消費過了,那你就別處理了,保證別重復處理相同的消息即可。比如基于數據庫的唯一鍵來保證重復數據不會重復插入多條。因為有唯一鍵約束了,重復數據插入只會報錯,不會導致數據庫中出現臟數據。
9、回收期 可達性 和 程序計數JVM (GC root 有哪些)
10 、 緩存擊穿怎么解決 (保證同一時間一個請求成功寫redis)
11、 銀行轉賬 事物 保證 https://zhuanlan.zhihu.com/p/71887950 (TCC 原來說一遍)
12、LINUX 命令 讓進城后臺執行 &
13、限流令牌桶 漏斗模式的 區別
14、redis 主從復制的原理
15、tomcat調優的參數(偏實踐能力這個看經驗回答了)
16、TOP 然后看CPU 和內存使用率 怎么定位問題
17、redis 配置參數(有哪些配置參數各個都是做什么的)
18、一個共享資源如何被其他線程看到(這塊應該是問 sychornized 或者 volatile)
19、如何優化SQL必須讓他們 走緩存 force index
20、做壓力測試 你們數據如何清除
21、單點登錄原理
22、JVM 機制 加載 效驗 一套流程如何把類加載到 虛擬機里面
23、線程池里面參數配置以及應用場景 (高頻)
24、 你們都用什么 線程池
25、REDIS 支持最大的QPS 10W 寫8萬
26、算法 (二分查找比較多 還有反轉單向鏈表)
27、HASHmap 擴容機制 為什么用紅黑樹
28、線上內存CPU使用率標高
29、mysql高可用架構 MHA 說清楚 還有就是不停機 舊庫換新庫等
30、責任鏈模式
31、zadd 跳躍表 具體跳躍表原理
32、join 底層原理 是什么 https://www.jianshu.com/p/6086365a73bd(嵌套)
33、zk為什么zxid是唯一
34、 es 底層落盤 OS cache 等 刷新速度 以及 如何保證高可用
35、Spring傳播級別 默認級別 require 外層沒有事務 內層有 會發生什么
36、https原理說清楚
37、 解決黏包 拆包 封包 的問題
粘包、拆包解決辦法
通過以上分析,我們清楚了粘包或拆包發生的原因,那么如何解決這個問題呢?解決問題的關鍵在于如何給每個數據包添加邊界信息,常用的方法有如下幾個:
1、發送端給每個數據包添加包首部,首部中應該至少包含數據包的長度,這樣接收端在接收到數據后,通過讀取包首部的長度字段,便知道每一個數據包的實際長度了。
2、發送端將每個數據包封裝為固定長度(不夠的可以通過補0填充),這樣接收端每次從接收緩沖區中讀取固定長度的數據就自然而然的把每個數據包拆分開來。
3、可以在數據包之間設置邊界,如添加特殊符號,這樣,接收端通過這個邊界就可以將不同的數據包拆分開。
等等。
(兩端約定報文頭部和尾部內容,從而識別是一包完整數據,固定報文長度,不足用空補齊,接收端讀取固定長度,類似于第一種方式,在尾部增加換行符,在報文頭部聲明消息體長度,一發一收)
38、設計一個排序 用redis,兩個排序方式 一個銷量一個時間,怎么排序 利用sort set 的 得分
39、dubbo接口擴展設計SPI 機制聊清楚
40、dubbo微內核 (沒理解過這個)
41、nginx負載均衡有哪些
42、如何解決跨域 (jsonp nginx 反向代理 等 盡可能全)
43、四種單例寫法 (枚舉類 內部類 一般 懶漢餓漢 還有什么 ?)
44、juc那幾個 AQS的應用場景(柵欄模式 信號量 計數器)
45、你們日志是怎么統一的 (看網上用elk 多個 服務多臺機器 如何看錯誤日志 dubbo+zk模式)
46、mysql 主從復制怎么連接(如何配置 什么時候讀什么時候寫 我們一般是select 的走從庫 其他的走主庫)
47、如何泡壞spring單例(反序列化 , 反射)
48、 延遲雙刪 (經常問 如何保證redis和數據庫 數據一致 延遲雙刪 具體怎么弄 怎么 2秒后刪一次 用什么控制 起一個線程做嗎 還有什么更好的)
49、事物什么時候不生效 this.方法 不會走代理
50、聊清楚AOP 如何配置 (實際操作 現場說出如何 配置)
51、Threadlocal 如何使用
52、數據庫表里面 有一些數據是 2條一樣的數據 只是部分字段優先級不同 有些數據是一條 一次查詢 根據 優先級 1 的
只顯示 2條中的優先級高的一條 和普通的數據 。 根據配置的優先級展示不同數據
53、百萬以上數據增加字段會影響嗎 如何有 如何解決 (新建一個新表把字段加上然后把舊表數據用 mq 等操作插入到 新表里面然后改名 還有其他更好的辦法歡迎分享)車以下關于他的面試題總結
其他
美團
一面
二面
騰訊
通常是三輪技術面試,一輪 HR 面試,第一輪面試會有一道算法題,有的時候可能是 4 輪技術面試。
一面
一面主要是問 Java 基礎,常規題,比較見答案。
二面
主要聊的是項目,技術問題都是在聊項目的時候帶出來的。
三面
和二面幾乎一樣,大部分時間聊項目,問題也類似,重復面試題不再贅述
四面
阿里
三輪技術面試,一輪 HR 面試,第一輪通常是電話面試,第二輪是視頻,可能會有一道算法題。
一面
一面基本是 Java 基礎問題,比較簡單。
二面和三面
二面和三面是同一天面的,記不清了,大概是這些問題,面試官比較喜歡追問。
總結
以上是生活随笔為你收集整理的阿里京东滴滴等大厂面试题汇总的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RocketMQ学习
- 下一篇: Kafka一些参数配置