520沒啥好送的,送一份面經總結吧(內含位元組、蝦皮、歡聚等)

来源:https://www.cnblogs.com/codegitz/archive/2022/05/20/16292157.html
-Advertisement-
Play Games

520沒啥好送的,送一份面經總結吧(內含位元組、蝦皮、歡聚等) 前言 今天不想寫文章,水一篇面經。 本來也沒打算搞這些,但是看到大家都在面,就跟著出去試試水。我工作已經一年多接近兩年,這個工作時長其實比較尷尬,中級崗位自己不滿意,高級崗位大廠評級比較難上去。 首先說一下我的工作內容,主要做金融相關的業 ...


520沒啥好送的,送一份面經總結吧(內含位元組、蝦皮、歡聚等)

前言

今天不想寫文章,水一篇面經。
本來也沒打算搞這些,但是看到大家都在面,就跟著出去試試水。我工作已經一年多接近兩年,這個工作時長其實比較尷尬,中級崗位自己不滿意,高級崗位大廠評級比較難上去。

首先說一下我的工作內容,主要做金融相關的業務,目前做的是金融風控系統,常用技術也就是那些爛大街的。

關於這次面試的準備,主要有幾點:

  • 八股文,這一塊我倒是沒怎麼看,壓根沒複習
  • 框架,Spring這些我相對熟悉,也沒怎麼複習
  • 業務,金融業務相對複雜點,可以說的點有很多,這點可能項目有點兒優勢
  • 演算法,LeetCode隨便刷刷

把簡歷掛boss就有人來約面試了,但是實際上我參加了的就這幾家,最終除了bigo莫名其妙終止流程外,其他都拿到了offer。

這裡不得不吐槽一下bigo,純粹刷KPI,把流程終止後說找到更合適的人選了,但是我追問更合適的人是需要什麼要求,HR又說他們現在不招人,我真是醉了。不招人約個錘子面試,浪費時間。

這裡的面試順序是我實際上參與面試的時間進行記錄的,並沒有特意再根據公司進行歸類。可以看到,其實問下來的內容七七八八都是這些,基本是按照簡歷寫的來,沒超出太多。

面經

某金融公司 一面

0.項目,因為項目類似,聊了比較多,都很熟悉。

1.資料庫的ACID實現

2.MySQL索引的結構

3.跳錶

4.七層網路協議,tcp,可靠消息,流量控制,擁塞處理

5.最大公共不連續子串

某金融公司 二面

1.繼續項目,難點在哪,做了什麼等

2.各種中間件聊一下

3.定時任務優化聊了一下時間輪和大概的實現

4.Spring聊一下無了

位元組 一面

1.MySQL資料庫的連接設置

2.100個小球,有一個質量不一樣的,怎麼用天平秤兩次找出這個小球

3.最長公共子串連續

4.MySQL一個SQL插入的過程,結合各層的實現和索引實現去講,會有些頁分裂整理什麼的

5.索引的查詢原理,為什麼是B+ 樹,有什麼優劣,其他可以做資料庫的結構,數組,哈希表,LSM樹(hbase)等,各自的優缺點

6.tcp http https ssl

歡聚 一面

1.自我介紹

2.流程引擎,並行流程引擎處理

3.Dubbo 負載均衡

4.spring 迴圈依賴

5.配置中心動態生效 熱部署

6.Redis

7.鎖 樂觀鎖 悲觀鎖 synchronized原理

8.CAS帶來的問題 ABA問題

9.countdownlatch底層原理

10.tcp udp

11.線上出現過的問題 索引失效 字元編碼加號坑爹

12.兩個線程交叉列印數字

13.寫個冒泡 優化一下

14.最近在讀什麼書 看完了沒有 看了多久 graalvm 靜態編譯原理 看完了 花了三個月 期望雲原生髮展方向

位元組二面

1.項目介紹

2.流程引擎的設計 為什麼這麼選型 對比市面上的有什麼優勢 Osworkflow JBPM Activiti flowable Camunda

3.有沒有對流程引擎進行過壓測,性能如何

4.redis key過期時間到了,那再去查就一定沒有了嗎? 延遲刪除,主從同步延遲 時鐘跳躍 可以設定精確的過期時間 expireAt 時間點

5.Map有哪些實現 HashMap TreeMap ConcurrentHashMap LinkedHashMap,TreeMap 和HashMap的區別,底層的數據結構分別是什麼,日常有沒有遇到使用map出現併發問題

6.CPU高怎麼去分析 top定位線程, jstack定位代碼

7.dubbo 的負載均衡策略 隨機 輪詢 權重 一致性哈希 分別有什麼優缺點和問題,項目里使用的是哪一種,線上有沒有因為此策略而出現過問題

8.dubbo 的重試機制 怎麼實現一個dubbo協議,需要集成哪些類,分別完成什麼操作 protocol ,injvm dubbo協議的實現扯一下

9.io模型,react模型

10.tcp udp的區別 從面向鏈接 可靠開始 到三次握手 四次揮手 流量控制 慢開始 擁塞避免 快重傳 快恢復

11.解決了什麼項目難點 解決了規則執行日誌的收集 項目出現什麼問題比較深刻

12.計算一棵樹的最大寬度 LeetCode 662,節點計數法,或者空間利用

13.找零,冰淇淋5一根 客人會用5 10 20 面值來買,你要保證正確找零 ,一開始手上沒有零錢 直接遍歷一遍解

14.有沒有你比較擅長但是我沒有問到的 spring相關

15.QA:當前業務是什麼,難點是什麼,未來發展的趨勢

蝦皮 一面

1.kafka消息保存機制 記憶體 落盤 非同步刷盤

2.kafka是怎麼保持消息可靠的,消息確認機制 1 0 -1

3.生產中kafka消費遇到的問題 消息堆積 阻塞 多線程消費

4.資料庫性能瓶頸 慢SQL查詢 多長算慢SQL 500ms

5.數據結構 數組鏈表的區別 哈希表的實現原理 鏈表轉紅黑樹 紅黑樹的細節,節點的定義,怎麼染色的,如何旋轉 怎麼實現

6.jvm垃圾收集器 serial parallel CMS G1,各種優缺點,併發標記有什麼優缺點,浮動垃圾怎麼處理 ,項目里用了哪個

7.jvm參數瞭解哪些,進行了什麼調優 Eden s1 s2

8.jvm 8的元空間瞭解嗎 裡面存儲了什麼信息 跟永久代的區別 元空間會引發fullgc嗎 為什麼要有元空間 元空間怎麼實現的

9.tcp問題四次揮手的細節,主動關閉被動關閉分別會發送什麼報文,然後進入什麼狀態,其中會引發什麼問題 close timewait狀態答得不准確,這裡問得很細,問到了fin_wait_1這些狀態

10.http https ssl

11.非對稱加密演算法瞭解哪些 RSA原理知道嗎 大質素相乘,數學推算細節知道嗎 不知道GG

12.演算法 ipv4地址匹配

蝦皮 二面

1.業務的流程,偏金融相關:從獲客千人千面開始到核心系統群裡面的狀態流轉,到最終流程結束 完整闡述一遍,提了一些重要問題的點

2.為什麼要用一套流程引擎,業務和代碼解耦,方便業務的操作。怎麼確保流程是對的,並且能用。兩個方面,技術保證系統的可用性,業務保證業務邏輯的正確性。深入闡述。

2.那流程上線之前的正確性怎麼驗證 sit -> uat -> pre -> pet -> preprod -> prod ,AB測試 風控數據團隊並行灰度對數

3.對於業務的理解,技術服務於業務,以滿足業務為前提,聊天

4.接下來是比較多的case by case

5.簡單場景下,兩個賬戶互相轉賬,怎麼保持結果正確 鎖 樂觀鎖 悲觀鎖

6.分散式場景下,上述情況怎麼保持結果正確,分散式鎖,隨口提了一嘴Redis 順便搞了一嘴redis的高性能 高可靠如何保障 分散式事物,seata簡單實現原理 XA TCC 2PC 3PC 一致性演算法raft 最終保障數據一致性

7.還是上述分散式場景,服務調用出現了問題,怎麼處理 調用端重試,帶上重試標識等,服務端冪等或者響應重試等

8.承接場景7,併發量數據量上來了,如何處理 緩存 數據進行分庫分表

9.那麼好,分庫分表假設給你一個賬戶表 要保障高併發下賬戶的數據是正確的,如何分表,按照什麼維度劃分,巴拉了一下橫切豎切,分析了一下熱點賬戶處理,添加影子賬戶巴拉巴拉

10.可以正常交易後如何保障交易的安全性 ,這幾個點比較有趣,即 :

  • 不可見性 加密巴拉巴拉 對稱 非對稱
  • 不可篡改性 加密巴拉巴拉 非對稱加密 CA認證 風險監控 可疑IP鏈路監控
  • 不可抵賴性 人臉識別 活體檢測 巴拉巴拉

11.MySQL的ACID逐個說明,MVCC 當前讀 快照讀 事務的可見性 readview trx_ix roll_ptr row_id

12.底層索引的組織實現,B+樹的特性,MySQL裡面葉子節點個數,層數等 一般節點數為1200 層次為4,可存節點17億左右,葉子節點順序遍歷,數據頁大小,記憶體碎片整理,頁分裂等巴拉一下

13.在索引上進行一次增刪改查的流程,B+樹的操作,節點調整 分裂合併等瞎扯

14.QA:業務方向 難點以及解決方案

bigo 一面

1.系統的業務,系統主要模塊劃分,說一下架構圖 我在裡面主要做了什麼,接下來業務的詳細流程巴拉巴拉

2.談一下你對dubbo的瞭解,dubbo的模塊區劃分,簡單說一下一個rpc框架的的結構 序列化層 協議層 傳輸層 服務層 API層

3.上游服務調下游服務,數據的傳輸流程是怎樣傳輸的 簡單描述一次RPC的調用過程,從2.的層次去回答

4.多線程請求的情況下,RPC調用後消息怎麼正確返回調用結果 消息序列號

5.線程安全的容器,concurrentHashMap的實現原理 HashMap 對比HashMap原理,1.7 1.8前後的改變 鎖

6.ConCurrentHashMap的put/get實現原理 也對比HashMap去說 初始化 擴容 哈希衝突 拉鏈法 鏈表數組轉換

7.線程池有哪些常用的參數 簡單說了一下corepoolsize maxpoolsize keepalive policy queue,說了一下業務中線程池的使用

8.線程的狀態有哪些?狀態之間怎麼轉換 對比操作系統的線程模型簡單說下 說了cpu調度 io等的影響

9.Redis緩存雪崩是什麼? 對比了緩存穿透 緩存擊穿說了一下

10.MySQL事務隔離級別 Read Uncommit Read Commit Repeatable Read Serialize 分別說了一下會造成的問題

11.幻讀和可重覆讀有什麼區別 說一下含義說的區別 舉例子說明出現的場景 最後說下怎麼解決 next-key 鎖 gap 鎖

12.間隙鎖原理

13.kafka的組件架構 這個答得不好,隨便說了一個server broker partition 瞎扯了一番消息發送可靠性是如何保證的,面試官很無語 我壓根沒問,你說那麼多乾哈玩意

14.kafka寫消息機制 寫記憶體 落盤 非同步刷盤 主從同步等

15.演算法:鏈表裡面環的長度(leetcode 141與142結合體)秒了五分鐘寫完

歡聚 二面

1.項目 我狀態不好,很困,瞎說了一堆,不知所云 也可能是面試官並不熟悉這一塊業務,我們總互相Get不到點 藍瘦

2.項目里遇到的難點

3.jvm調優 最新版本的jdk用的是什麼垃圾收集器 CMS G1 ZGC 三色標記

4.oracle MySQL 的區別

5.設計一個地址簿

位元組 三面

1.聊家常

2.項目裡面做了什麼 處理了什麼 難點是什麼

3.線上出過什麼比較印象深刻的問題,索引失效 出現原因,處理方案 後果

4.怎麼搭建一個redis集群 單點 集群 redis cluster codis優缺點,怎麼實現高可用 數據同步等問題,一攬子巴拉一通

5.一致性演算法 paxos raft 從拜占庭將軍問題開始扯

6.mysql主從同步如何實現,巴拉了一下binlog,同步出現的時效問題等

7.技術挺好的,為什麼一畢業沒去大廠

8.QA 業務難點

總結

這些問題好像都比較合理,這些也算是對自己工作快兩年的一個總結吧,渾渾噩噩又兩年。不過由於都是自己事後憑著記憶力回寫的,有錯有漏在所難免,輕拍。

一趟下來這一路都是走流程,你好、我是、好的、再見。

萬能模板:

  • 非常感謝貴公司對我的認可。但是由於接到了更好的機會,不能接受貴公司的offer,我覺得非常遺憾。希望我們可以保持聯繫,以後如果有機會,希望能與貴公司由更緊密的聯繫。但這次我真的非常抱歉,還請貴公司理解。謝謝。

如果有人看到這裡,那在這裡老話重提。與君共勉,路漫漫其修遠兮,吾將上下而求索。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ZooKeeper知識點總結 一、ZooKeeper 的工作機制 二、ZooKeeper 中的 ZAB 協議 三、數據模型與監聽器 四、ZooKeeper 的選舉機制和流程 本文將以如下內容為主線講解ZooKeeper中的學習重點,包括 ZooKeeper 中的角色、ZAB協議、數據模型、選舉機制、 ...
  • 現在驗證碼登錄已經成為很多應用的主流登錄方式,但是對於OAuth2授權來說,手機號驗證碼處理用戶認證就非常繁瑣,很多同學卻不知道怎麼接入。 認真研究胖哥Spring Security OAuth2專欄的都會知道一個事,OAuth2其實不管資源擁有者是如何認證的,只要資源擁有者在授權的環節中認證了就可 ...
  • 來源:csdn.net/xiaojin21cen/article/details/78587425 ZeroC ICE的Java版,Netty2作者的後續之作Apache MINA,Crmky的Cindy之外,還有個超簡單的QuickServer,讓你專心編寫自己的業務代碼,不用編寫一行TCP代碼。 ...
  • 1.創建線程池相關參數 線程池的創建要用ThreadPoolExecutor類的構造方法自定義創建,禁止用Executors的靜態方法創建線程池,防止記憶體溢出和創建過多線程消耗資源。 corePoolSize: 線程池核心線程數量,不會自動銷毀,除非設置了參數allowCoreThreadTimeO ...
  • 我們在上一篇博客中介紹了Linux系統Shell命令行下可執行程式應該遵守的傳參規範(包括了各種選項及其參數)。Python命令行程式做為其中一種,其傳參中也包括了位置參數(positional和可選參數(optional)。Python程式中我們解析在命令行中提供的各種選項(選項保存在sys.ar... ...
  • 1. Netty源碼研究筆記(1)——開篇 1.1. Netty介紹 Netty是一個老牌的高性能網路框架。在眾多開源框架中都有它的身影,比如:grpc、dubbo、seata等。 裡面有著非常多值得學的東西: I/O模型 記憶體管理 各種網路協議的實現:http、redis、websocket等等 ...
  • Kafka 簡介 Kafka 是一種高吞吐、分散式、基於發佈和訂閱模型的消息系統,最初是由 LinkedIn 公司採用 Scala 和 java 開發的開源流處理軟體平臺,目前是 Apache 的開源項目。 Kafka 用於離線和線上消息的消費,將消息數據按順序保存在磁碟上,併在集群內以副本的形式存 ...
  • 前言 微服務治理方案中,鏈路追蹤是必修課,SpringCloud的組件其實使用很簡單,生產環境中真正令人頭疼的往往是軟體維護,介面在微服務間的調用究竟哪個環節出現了問題,哪個環節耗時較長,這都是項目上線後一定會遇到的問題,為瞭解決這些問題鏈路追蹤便應運而生了。 主流方案 1)、SkyWalking: ...
一周排行
    -Advertisement-
    Play Games
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...