玩吧面經

1.自我介紹

2.技術棧都有哪些

3.mysql的數據索引結構

4.B+tree與Btree的區別是什麼

5.B+tree使用的指針鏈表是單向還是雙向? https://blog.csdn.net/hao65103940/article/details/89032538

6.b+樹跟b樹有啥區別

  1. 非葉子節點只存儲鍵值信息。

  2. 所有葉子節點之間都有一個鏈指針。

  3. 數據記錄都存放在葉子節點中。

7.數據庫分表策略是怎麼做的?

8.Mysql默認的事務隔離級別是什麼,有什麼缺點

    可重複讀(Repeatable read),

              (1)這是MySQL的默認事務隔離級別

    (2)它確保同一事務的多個實例在併發讀取數據時,會看到同樣的數據行

    (3)此級別可能出現的問題——幻讀(Phantom Read):當用戶讀取某一範圍的數據行時,另一個事務又在該範圍內插入了新行,當用戶再讀取該範圍的數據行時,會發現有新的“幻影” 行

    (4)InnoDB和Falcon存儲引擎通過多版本併發控制(MVCC,Multiversion Concurrency Control)機制解決了該問題

9.什麼是幻讀

    幻讀指的是一個事務在進行一次查詢之後發現某個記錄不存在,然後會根據這個結果進行下一步操作,此時如果另一個事務成功插入了該記錄,那麼對於第一個事務而言,其進行下一步操作(比如插入該記錄)的時候很可能會報錯。從事務使用的角度來看,在檢查一條記錄不存在之後,其進行插入應該完全沒問題的,但是這裏卻拋出主鍵衝突的異常。

10.怎麼解決幻讀

     a.隔離升級-串行化:

  • 事務在讀操作時,先加表級別的共享鎖,直到事務結束才釋放

  • 事務在寫操作時,先加表級別的排它鎖,直到事務結束才釋放

         串行化鎖定了整張表,幻讀不存在的!!!

    b.多版本併發MVCC:

        InnoDB 的 MVCC, 是 通過 在 每 行 記錄 後面 保存 兩個 隱藏 的 列 來 實現 的。 這 兩個 列, 一個 保存 了 行的 創建 時間, 一個 保存 行的 過期 時間( 或 刪除 時間)。 當然 存儲 的 並不是 實際 的 時間 值, 而是 系統 版 本號( system version number)。 每 開始 一個 新的 事務, 系統 版本 號 都會 自動 遞增。 事務 開始時 刻 的 系統 版 本號 會 作爲 事務 的 版 本號, 用來 和 查詢 到 的 每 行 記錄 的 版本 號 進行 比較。

 

11.分佈式鎖有了解嗎

12.分佈式鎖的加鎖底層命令以及解鎖的命令

13.redis解鎖時可以直接刪除key麼?

14.redis的持久化有幾種方案以及特性

15.spring的IOC和AOP的實現圓臉

16.動態代理有幾種實現方式

17.JDK與Cglib的區別

18.cglib可以代理所有的方法麼

19.cglib怎麼實現的代理

20.IOC的循環依賴是怎麼解決的

21.解決循環依賴爲什麼需要用到三級緩存

22.線程池有用到過麼?怎麼創建的線程池

23.線程池的幾個主要參數

24.線程池從初始狀態一直添加線程,線程池是怎麼處理

25.拒絕策略都有哪些?

26.空閒線程的回收機制(多一個知識點就是,核心線程也是有配置是否可以回收的)

27.有邊界的線程池,如何做生產者、消費者模式

28.Sync自帶的鎖,工作中是否有用到

29.Volatile解決了什麼問題,工作用在哪裏

30.sync一般加載哪裏?有什麼區別

     類對象鎖、實例對象所

31.sync鎖的升級膨脹過程

32.有一個轉盤,分1、2、3等獎,中獎概率分別爲10%、20%、70%,怎麼實現

     分10塊,映射1等獎(1)2等獎(2,3)3等獎(4,5,6,7,8,9,10)。求10中間隨機數

39.視頻回放功能設計

39. 做個朋友圈,需要注意哪些點

40. 有看書嗎?看過哪些書

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章