有讚研發面經Spring 併發鎖 分布式 演算法

2022-09-23 15:03:09 字數 2673 閱讀 9937

有讚:問得非常細節

一面:1 j**a併發技術了解嗎,說了執行緒,juc的執行緒池,併發容器,阻塞佇列,原子資料型別等。

2 問我原子資料型別怎麼實現,cas

3 執行緒池有哪些引數,阻塞佇列用的是普通佇列麼,答不是,是blockingqueue

4 concurrenthashmap和hashmap的區別,chm的實現原理,你在什麼場景下用到chm,為什麼,我說了多執行緒查詢資料,put可能覆蓋,或者hashmap的擴容可能產生死鏈

5 還用過哪些資料結構,list,set,map,stack和queue。

6 spring了解麼,問我了解五大元件不,不了解,說了ioc和aop。然後問我分別怎麼實現的,使用xml和註解配置實現類有什麼區別,怎麼解析它們的資料。

7 spring如何動態地載入乙個bean到bean容器中,不是通過配置檔案配置的,不會。

8 spring aop的實現原理,如何加一層動態**的,我說是建立bean過程中直接生成**類的例項

9 spring的spring quartz知道麼,必須不知道

10 spring原始碼看過麼,mvc了解麼,說了一下mvc的原理和請求過程

11 hibernate和mybatis的原始碼看過麼,沒有

12 如何實現不同環境中配置檔案的自動切換,使用指令碼或者命令,他說使用hibernate的註解可以實現切換。

13 nio和io的區別,nio是阻塞輪詢的,如何改用非同步通知的機制,我說使用aio註冊非同步**函式。

14 nio的包裝框架了解麼,我說netty,看得深入麼,我說沒有深入看。

15 分布式服務dubbo了解麼,有哪些功能,如何自己實現乙個dubbo,我分別從rpc和微服務的角度說了一下。問我有哪些序列化方式。

16 mysql問了幾個簡單問題。

17 對我們公司了解麼,只是稍微了解。

二面:1 專案

2 j**a的記憶體模型,堆和棧分別存什麼

3 j**a的深拷貝和淺拷貝

4 spring的aop怎麼實現的,動態**的原理是什麼

5 spring mvc的請求過程。

6 跳出spring,說一下瀏覽器的請求過程

7 網路程式設計這一塊,你了解哪些,說了socket和nio

8 nio的底層實現一般是epoll,講一下epoll吧。

9 mysql的索引說一下,二級索引是怎麼進行查詢的

10 mysql的兩個引擎區別

11 hibernate的orm是怎麼實現的,我說的是xml和註解的解析,以及jdbc封裝

12 hibernate的事務如何實現,我說是jdbc的事務實現。

13 分布式資料庫查詢乙個表的前十條資料,對id進行hash來索引節點,如何進行查詢。我說那就對id hash,找到節點分別查詢。

14 分布式系統的概念,如果有資料一致性怎麼辦,答cap和base

15 了解哪些分布式技術,說了快取,負載均衡,訊息佇列,hadoop

16 負載均衡的衡量指標,不知道

17 訊息佇列了解哪個,rabbitmq和kafka,為什麼kafka

比rm快,答了零拷貝,具體實現原理答錯了,應該是避免複製資料到應用緩衝,直接使用sendfile傳輸資料。

18 hadoop了解哪些,hdfs的檔案讀寫機制說一下。

19 沒什麼問題了

20 需要來現場面試,其實我不想去現場面,然後隔天給我發了拒信

三面:1 自我介紹和專案

2 j**a的記憶體分割槽

3 j**a物件的**方式,**演算法。

4 cms和g1了解麼,cms解決什麼問題,說一下**的過程。

5 cms**停頓了幾次,為什麼要停頓兩次。

6 j**a棧什麼時候會發生記憶體溢位,j**a堆呢,說一種場景,我說集合類持有物件。

7 那集合類如何解決這個問題呢,我說用軟引用和弱引用,那你講一下這兩個引用的區別吧。

8 j**a裡的鎖了解哪些,說了lock和synchronized

9 它們的使用方式和實現原理有什麼區別呢,使用的話,synchronize用於方法和**塊,可以鎖物件和類以及方法,lock一般鎖一塊**。並且lock可以搭配condition使用。

實現原理的話,synchronized使用底層的mutex鎖,需要系統呼叫,而lock則使用aqs實現。

10 synchronized鎖公升級的過程,說了偏向鎖到輕量級鎖再到重量級鎖,然後問我它們分別是怎麼實現的,解決的是哪些問題,什麼時候會發生鎖公升級。

11tomcat了解麼。說一下類載入器結構吧,我說不知道,說了些別的。

12 問我會什麼框架,說了spring,問我spring中如何讓a和b兩個bean按順序載入,我說依賴關係,他問怎麼實現,然後說要用dependon註解,我說不了解。

14 mysql的sql優化了解麼,答了解索引優化。

15 他問我如何做一條sql的優化,說了慢日誌和explain。

16 mysql集群的主從複製怎麼做的,具體有哪些執行緒做哪些事情,使用了哪些日誌。

17 cap定理說一下,為什麼三者只能選二,為什麼分割槽容忍性必須保證。

18 平時了解哪些技術是犧牲了一致性來保證可用性的,我說訊息佇列,他問我mysql是不是,我說mysql主從複製應該是。

19 工作中cap的a和p是怎麼選擇的,我說選p吧,他的意思是選a。

20 演算法題:

二:十億個數找前10個最大的,小頂堆過一遍即可。他說如果要提高效率呢,我說可以分片做堆排序再進行歸併即可。他說ok。

遊戲研發面經整理

從地圖上任意一點s到其他所有可達點的最短路徑,考慮上下左右四個所有方向行走的情況 在地圖內的每個區塊移動消耗不同時,dijkstra演算法可以非常方便的找出從地圖上某個起始區塊到其他所有可達區塊的最短路徑。重複步驟2直至演算法結束。希望角色更傾向於經過某些區塊時 比如經過這些區塊可以獲得增益效果 道...

實習面經 微策略c 研發面經

微策略是3月中旬進行內推的。投遞方式 內推 題目全是英文,包括邏輯題,程式設計題,還有審美題。都比較簡單,只要讀懂英文就不會很難。一面 首先問簡歷上的專案,問了一些c 的基礎知識,比如構造函式引數初始化表什麼時候應該使用等。然後問智力題,最後問了道程式設計題,口述思路。二面 面試官 總監 二面面試官...

有讚電話面經

部分內容為網上搜尋總結,並非自己的,感謝各位 水平垂直居中的方法 我只回答出了盒子模型的三種情況,當時腦子空白沒想到要分型別走,所以建議思路要清晰,先大體分類,然後每個類別幾種方法 1 對於單行文字 text align line height text align center line heig...