頭條二面
二輪技術面,17:00~20:25,晚飯時間hr 小姐姐還特貼心的帶我體驗了一把傳說中的頭條餐廳,不超過半小時
- 聊項目,畫項目架構圖,畫一個使用者從發起請求 到接收到響應 中間經過哪些服務 每個服務做什麼事情 的流程圖
- 講項目中的難點、挑戰,你是如何解決的
- redis 中有幾種類型 & 各自底層怎麼實作的 & 項目中哪個地方用了什麼類型,怎麼使用的
- redis如何實作分布式鎖,zk如何實作分布式鎖,兩者的差別。如果service還沒執行完,分布式鎖在redis中已經過期了,怎麼解決這種問題
- synchronized底層實作,加在方法上和加在同步代碼塊中編譯後的差別、類鎖、對象鎖
- 鎖更新的過程
- java運作時區域 及 各個區域的作用、對GC的了解、java記憶體模型 及 為什麼要這麼設計
- 對索引的了解,組合索引,索引的最佳實踐
- countDownLatch用過沒有,在項目中如何使用的,對aqs 的了解
- 寫生産者消費者問題,考慮高并發的情況,可以使用Java 類庫,白紙寫代碼
- 如下圖所示
- 設計一個發号器,考慮叢集和高并發的情況,要求發号器生成的id是遞增趨勢,通過id可以區分出來是今天生成的id還是昨天生成的id,但是生成的id中不能直接帶有日期,要具有一定的混淆功能,白紙寫代碼
- 一個二位數組,每個元素都可以往上下左右四個方向走,尋找最長遞增路徑。如下圖所示,最長遞增路徑即紅色字型路徑。白紙寫代碼。
美團四面
電話面試(40分鐘)+現場三輪技術面試(3.5小時)+hrbp面試(30分鐘)
- 資料庫和緩存的一緻性問題。先更新資料庫,再更新緩存,若更新完資料庫了,還沒有更新緩存,此時有請求過來了,通路到了緩存中的資料,怎麼辦?
- 聚簇索引/非聚簇索引,mysql索引底層實作,為什麼不用B-tree,為什麼不用hash,葉子結點存放的是資料還是指向資料的記憶體位址,使用索引需要注意的幾個地方
- mysql預設的事務隔離級别,mvcc,rr怎麼實作的,rc如何實作的
- mysql間隙鎖有沒有了解,死鎖有沒有了解,寫一段會造成死鎖的sql語句,死鎖發生了如何解決,mysql有沒有提供什麼機制去解決死鎖
- 談下對GC的了解,何為垃圾,有哪些GC算法,有哪些垃圾回收器,cms和g1的差別,emm,還有一個直擊靈魂的問題,看過cms的源碼嗎,笑cry
- 有沒有排查過線上oom的問題,如何排查的
- 有沒有使用過jvm自帶的工具,如何使用的
- 假設有下圖所示的一個full gc 的圖,縱向是記憶體使用情況,橫向是時間,你如何排查這個full gc的問題,怎麼去解決你說出來的這些問題。
- 說說對java中集合類的了解,項目中用過哪些,哪個地方用的,如何使用的
- 對CAS的了解,CAS帶來的問題,如何解決這些問題
- volatile底層、synchronized底層、鎖更新的過程、MESI
- ehcache支援哪些緩存
- juc有研究沒有,講一講
- 聊項目,畫項目架構圖,畫一個使用者從發起請求 到接收到響應 中間經過哪些服務 每個服務做什麼事情 的流程圖
- 講項目中的難點、挑戰,如何解決的,項目這一塊會問的特别細
- 如何保證RocketMQ 消息的順序性,如何解決重複消費問題
- 項目中如何保證接口的幂等操作
- 講一講對redis 的了解,項目中如何使用的,哪個地方使用的,為什麼要使用
- 哨兵機制、redis兩種備份方式的差別,項目中用的哪種,為什麼
- 講一講對分布式鎖的了解
- 項目中系統監控怎麼做的
- 如何了解Spring中的AOP 和 IOC,以及DI,讀過Spring源碼沒有
- 讀過MyBatis源碼沒有
- 說一個你了解最多的架構,說出你的了解
- 如何了解分布式事務,為什麼會出現這個問題,如何去解決,了解哪些分布式事務中間件
- 聊一聊對分庫分表的了解
- hystrix功能 & 在項目中怎麼使用的 & hystrix 怎麼檢測斷路器是否要開啟/關閉 & hystrix 實作原理,除hystrix之外的其他熔斷限流中間件有了解沒有,了解多少說多少
- dubbo有了解沒有
- 怎麼了解java 中和 mysql 中的樂觀鎖、悲觀鎖
- 一緻性hash
京東
電話面試(30分鐘)+現場兩輪技術面試(1小時40分鐘),面完12:50,說讓我先回來,後續hr 電話和我聯系,一周後一面的面試官問我還考慮京東嗎,對不起,已經不考慮了,希望以後有機會再合作
- 一個final修飾的屬性,定義的時候沒有初始化,在無參構造函數中初始化,可以嗎,為什麼
- 說說對java中集合類的了解,項目中用過哪些,哪個地方用的,如何使用的,為什麼不用其他的集合類
- hashMap,concurrentHashMap底層實作,
- list删除是怎麼實作的,周遊的時候可以删除嗎,為什麼
- redis中有哪些資料結構,了解過其底層怎麼實作的嗎,和java中相似的資料結構的對比
- redis是單線程的還是多線程的,為什麼這麼快
- redis hash中某個key過大,變為String類型的大key,怎麼處理,使用中如何避免出現這種問題
- 設計模式在項目中哪個地方用到了,怎麼使用的,能不能畫一個你熟悉的設計模式的UML圖,手寫單例模式,手寫靜态内部類實作的單例模式
- 講一講mysql索引,實際工作中,哪些場景用了b+tree索引,哪些場景用了hash索引
- explain 可以看到哪些資訊,什麼資訊說明什麼,explain的結果列講一下
- Spring源碼看過沒有,會多少講多少
- MyBatis源碼看過沒有,會多少講多少
- cas,cas的缺點,如何解決
- aqs,countDownLatch如何實作
- 線程池如何實作,核心線程數和最大線程數設定成多少,為什麼這麼設定,項目中哪個地方使用了線程池,使用時需要注意什麼
- mysql事務隔離級别,幻讀,髒讀,項目中用什麼事務隔離級别,為什麼
- volatile底層原理、synchronized實作機制,
- 對XA、TCC的了解,了解哪些分布式事務架構,有什麼缺點
- feign 和 dubbo,了解多少說多少
- eureka 和 zookeeper,了解多少說多少
- hystrix 和 sentinel,了解多少說多少
- Spring cloud alibaba,了解多少說多少
- 對分庫分表、讀寫分離的了解,了解多少說多少
- 畫一下java 線程幾個狀态 及 狀态之間互相轉換的圖
- 聊項目,畫項目架構圖,畫一個使用者從發起請求 到接收到響應 中間經過哪些服務 每個服務做什麼事情 的流程圖,講資料庫設計 具體到部分表中有哪些字段
- emm 我們部門體量比較大,可能需要加班,到淩晨兩三點的那種,也可能通宵,通宵是大促期間,你能接受嗎
- emm 也會加班到十點,這個不是大促期間,但也不是每天,非常态情況,你能接受嗎,你在哪裡住,過來要多久,有男朋友嗎
- 一起去吃午飯吧,我們這邊有員工餐廳,不了不了,我回家吃飯吧
下面是面試tmj 之外的公司中遇到的一些問題哈,tmj 中已經被問到的就不再重複寫了,隻寫一下個别公司中我還記得的面試題(重點總結寫算法)
算法題
- [1,1,2,2,3,4,4,5,5,5] 找出不重複的元素(黃包車)
- 反轉連結清單,要求時間複雜度O(N),空間複雜度O(1) (火币)
- 非遞歸實作斐波那契數列 (愛奇藝)
- 這一周股市價格為[2,6,1,4,8],求哪一天買入哪一天賣出,可獲得最大收益,最大收益為多少 (愛奇藝)
- 按照箭頭方向查找二叉樹 (金山雲)
表a b c之間用id關聯,求陰影部分的資料 (金山雲)
- 一個整形無序數組,裡面三個數隻和等于一個目标值,求這三個數 (小米)
- 連結清單問題 (小米)
- 撲克牌問題 (小米)
- 有十張撲克牌,從上面開始抽,抽出一張放桌子上,然後再抽出一張放撲克牌的最下面,這樣循環往複的操作,直到手裡的牌都沒有了。這時,桌子上牌的順序正好是1 2 3 4 5 6 7 8 9 10。要求寫代碼求出原順序
- 手寫大頂堆 (linkedMe)
- 手寫LRU 算法 (火币)
- 字元串相加 (滴滴)
- 兩個數字類型的字元串,直接轉int或者double肯定都放不下,然後求這兩個數的和,傳回值還是字元串,15分鐘時間,要求無bug
- 尋找目标值位置 (滴滴)
- 有一個二維數組,數組橫向有序,縱向有序,求目标值的位置,10分鐘時間
- 求字元串“efabcbaefehiabcba”中最長的回文數,不去重(美團)
- 反轉int類型的值x,不要借用String,隻用int 即可。&& 針對該程式,寫出其應有的測試用例 (美團)
- top K 問題(每日一淘)
給大家分享下我的複習的面試資料
這些面試全部出自大廠面試真題和面試合集當中,小編已經為大家整理完畢(PDF版)
資料擷取方式:戳這裡前往我的騰訊文檔免費下載下傳
- 第一部分:Java基礎-中級-進階
- 第二部分:開源架構(SSM:Spring+SpringMVC+MyBatis)
- 第三部分:性能調優(JVM+MySQL+Tomcat)
- 第四部分:分布式(限流:ZK+Nginx;緩存:Redis+MongoDB+Memcached;通訊:MQ+kafka)
- 第五部分:微服務(SpringBoot+SpringCloud+Dubbo)
- 第六部分:其他:并發程式設計+設計模式+資料結構與算法+網絡
進階學習筆記pdf
都已整理好,需免費下載下傳點選這裡即可
- Java架構進階之架構築基篇(Java基礎+并發程式設計+JVM+MySQL+Tomcat+網絡+資料結構與算法)
- Java架構進階之開源架構篇(設計模式+Spring+SpringMVC+MyBatis)
- Java架構進階之分布式架構篇 (限流(ZK/Nginx)+緩存(Redis/MongoDB/Memcached)+通訊(MQ/kafka))
- Java架構進階之微服務架構篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
[外鍊圖檔轉存中…(img-wNOER5lR-1624261218450)]
- Java架構進階之微服務架構篇(RPC+SpringBoot+SpringCloud+Dubbo+K8s)
[外鍊圖檔轉存中…(img-wU9JS43u-1624261218451)]
[外鍊圖檔轉存中…(img-BdiOs0M6-1624261218451)]