總的來說一面還是比較簡單,招實習生可能會放寬條件吧,不過有的概念的細節還需要注意,並且要能將相關的知識點串起來,做對比記憶。
總得來說答得還可以吧,問得很基礎,面試也是個查漏補缺的過程,演算法比重很大,需要好好學習一下。
這是我記錄的題目:
mysql是關係型資料庫,主要用於存放持久化資料,將資料儲存在硬碟中,讀取速度較慢。
redis是nosql,即非關係型資料庫,也是基於key-value的快取資料庫,即將資料儲存在快取中,快取的讀取速度快,能夠大大的提高執行效率,但是儲存時間有限
我覺給面試官說我在投票功能裡用到了快取,每次從快取裡查詢使用者投票的次數,達到5票的不能再繼續投票。於是他問我,如果快取崩了怎麼辦,我說我已經持久化到了資料庫裡。
但現在想想,他應該是有別的意思,我覺得應該是想讓我說分布式快取的一些內容,比如主從複製這樣的東西,分布式快取架構這方面還是需要再看看的,這裡明顯答得不是很好。
這道題直接涼了,計算機網路當年考了96分,現在全還給老師了。。就說出了三次握手。。
1、tcp面向連線(如打**要先撥號建立連線);udp是無連線的,即傳送資料之前不需要建立連線
2、tcp提供可靠的服務。也就是說,通過tcp連線傳送的資料,無差錯,不丟失,不重複,且按序到達;udp盡最大努力交付,即不保證可靠交付
tcp通過校驗和,重傳控制,序號標識,滑動視窗、確認應答實現可靠傳輸。如丟包時的重發控制,還可以對次序亂掉的分包進行順序控制。
3、udp具有較好的實時性,工作效率比tcp高,適用於對高速傳輸和實時性有較高的通訊或廣播通訊。
4.每一條tcp連線只能是點到點的;udp支援一對一,一對多,多對一和多對多的互動通訊
5、tcp對系統資源要求較多,udp對系統資源要求較少。
為什麼udp有時比tcp更有優勢?
udp以其簡單、傳輸快的優勢,在越來越多場景下取代了tcp,如實時遊戲。
(1)網速的提公升給udp的穩定性提供可靠網路保障,丟包率很低,如果使用應用層重傳,能夠確保傳輸的可靠性。
(2)tcp為了實現網路通訊的可靠性,使用了複雜的擁塞控制演算法,建立了繁瑣的握手過程,由於tcp內建的系統協議棧中,極難對其進行改進。
採用tcp,一旦發生丟包,tcp會將後續的包快取起來,等前面的包重傳並接收到後再繼續傳送,延時會越來越大,基於udp對實時性要求較為嚴格的情況下,採用自定義重傳機制,能夠把丟包產生的延遲降到最低,儘量減少網路問題對遊戲性造成影響。
4.hashmap是如何擴容的
這個就比較熟悉了,於是跟面試把hashmap的底層原理也講了一遍,省得他追問我了。
hashmap是用陣列加鍊表的形式實現的,通過hash找到存放的位置,通過equal判斷key的內容是否相同。由於hash值可能一樣,所以陣列上會有乙個鍊錶,鍊錶上存放多個鍵值對,判斷是否相同的時候要用equal。
hashmap的擴容,預設大小是16,擴容是直接翻倍,大小都是2的冪次方,這樣做是為了能夠直接用位運算進行取模運算,比除法取模要快。
hashtable的擴容,預設是11,增長方式是2n+1,大小都是素數,素數的好處是在取模的時候會比較均勻,但是只能通過除法取模,不能通過位運算取模,除法取模沒有位運算取模速度快。
5.悲觀鎖和樂觀鎖
這不就撞槍口了,我就會背這個!
悲觀鎖,做事悲觀,總覺得有人會在自己修改資料的時候,跟自己一起修改。那麼就加鎖,使當前任務做完之後,才能進行下乙個任務,有個同步關鍵字就是按照這個想法實現的,事務也是。
樂觀鎖,做事樂觀,那麼就不加鎖,而是通過檢視資料版本號判斷是否修改,cas就是一種實現方式。
6.原子性怎麼實現
cas實現了原子性
7.用兩個棧實現乙個佇列
先讓數全進a棧,然後a全出棧到b,然後b出棧。
8.二分查詢演算法的實現
記錄中間值
9.hashmap和二分查詢的複雜度
hashmap:o(1)
二分查詢:o(logn)
10.有序陣列為什麼用二分快,而不用hashmap,明明hashmap的複雜度更低
因為初始化hashmap會消耗系統資源
11.二分查詢演算法實現,如果陣列是[7,8,9,1,2,3,4,5]這樣不是全部有序的情況,如何實現?
也是用二分法,判斷一下單調性,然後不單調的地方用遞迴。
12.mysql怎麼優化查詢?
索引、聯接、分頁(不全,我再總結總結)
今日頭條面試經歷
很慚愧,這次面試感覺答得非常不好,一方面是面試官所處環境有點嘈雜,應該是在辦公場所,寫 時受了一定影響。還有就是自己比較緊張,一些底層原理處答得不太好,平時比較清楚的原理,也沒答出來,希望以此為戒,後續在做專案的同時需要更加關注底層實現這些細節,吃一塹長一智。整理了下本次面試過程,面試耗時乙個小時左...
今日頭條面試經驗分享
1.給乙個小頂堆,再給你乙個數,讓你插入到這個堆裡。思路 把這個數放到堆的最後,然後向上調整堆的最後乙個非葉子結點。2.求乙個 字串的 最長回文子串 並且返回第乙個出現的下標。思路 中心擴充套件法,逆序。3.有乙個表,有id,name,age等字段,讓你查詢姓 李 和姓 王 並且年齡 18歲的 記錄...
面試經歷之今日頭條
今日頭條主端後端研發實習生崗 面試已經結束快半年了,憑藉記憶來寫一下 一面 自我介紹一下。根據我的空間資料庫專案,提問我專案中有關r樹,b樹等資料結構方面的問題,由於專案那個時候還沒有做,就憑著專案立項答辯之前查的資料答了一些我知道的。演算法題目只有一道 給n個數字,求所有兩兩組合中異或和最大的值。...