【面經記錄】字節跳動實習面試【大數據】


字節跳動面試

時間:2019年7月30日

地點:北京海淀區丹棱街1號互聯網金融中心15層

面試崗位:大數據研發實習生

面試過程:

  一共四面,三面是技術面,最后一面是HR面,流程很正式。不愧是出了名的重視算法題,整個面試過程以手寫算法題為主。(應該是一共寫了七八道算法題)

  主要問題:

  • 自我介紹,研究方向,簡單的項目經歷
  • 項目中用Storm做了什么,Storm的整體架構介紹一下(Topology、Spout、Bolt)
  • Storm集群中的主節點和從節點分別叫什么?(nimbus、supervisor)主節點是如何選舉的(依靠Zookeeper)?
  • Java中的HashMap底層原理(鏈表的數組),HashMap的key可以為null嗎,value可以為null嗎?(結論是:HashMap的key、value值均可為null,而HashTable對象的key、value值均不可為null。)
  • HashMap和LinkedHashMap有什么區別
  • 【手寫算法第一道】:用LinkedHashMap實現LRU淘汰策略
  • 【手寫算法第二道】:最小棧,要求壓棧、彈棧、取得最小值的復雜度均為O(1),用兩個棧實現,寫完后追問:如何減小這個最小棧的空間開銷(第一種:不要每次都存,最小值不變則不更新,第二種:存放索引值(地址值))
  • 【手寫算法第三道】:兩個大整數做加法(先說了可以用java中的大數類,然后問如果不用這個怎么做,寫了一個用字符串保存,從低位開始加的,最后被指出來一個問題:沒有考慮符號位)
  • 對kafka有什么了解,講一下基本原理
  • 對關系型數據庫有什么了解,mysql索引的底層實現(B+樹),主鍵索引和輔助索引
  • 問對Hadoop的HDFS、MR這些有多少實踐經驗
  • 【手寫算法第四道】:二叉樹的層次遍歷
  • 【手寫算法第五道】:二維數組中的查找(按行有序,按列有序)
  • 【手寫算法第六道】:讀發票上的錢數,給出1001.25,返回一個字符串:一千零一元二角五分
  • 對java有多少了解,java的鎖機制,synchronized是可重入的嗎,可重入是什么意思,和ReentrantLock有什么區別,給靜態方法加synchronized和非靜態方法加有什么不一樣?
  • Redis用來做什么,是存在內存中嗎,設置過期時間,真的比數據庫快嗎,快多少?
  • 【手寫算法第7道】:m個醫生,n個病人,給出每個病人看病所需的時間,寫一個函數給每個醫生分配應該看的病人。(想到了用一致性哈希,但是沒寫過用一致性哈希的代碼,所以這道題基本很失敗)
  • 登錄網頁打開愛奇藝看一個視頻,技術原理是什么,用到了哪些協議?(HTTP、DNS、UDP\TCP、IP、ARP)
  • 數據庫的內連接和左外連接,舉例說明
  • 未來一年在技術和職業上有什么規划
  • 第四面:HR面問的是一些開放性問題,根據自己情況實事求是回答就好


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM