java程式設計師最難面試之“今日頭條”

認真期待發表於2018-04-19

序言

今日頭條的面試不是一般的難. 前面兩面還好。 一面

JS基本資料型別
說說ES6新規範,我說了 let const 箭頭函式 還有promise, ES6 Module 。
怎麼實現ES6 Module,我說了用閉包實現一個模組。
專案用到React,說說React。
React效能優化
演算法 問題之前筆試 ,求兩個整型陣列的相同數,當時想到了用雜湊表去掃描,然後比較下一個陣列中是否有相同數字
常見的查詢方式,順序表查詢,二分查詢,雜湊查詢,各自時間複雜度。 注意二叉樹的查詢,時間複雜度是O(h),樹的高度! 
AVL是O(lgN)
雜湊表的實現方式: 雜湊函式實現-除留餘數法、直接定址法、數字分析法等。 解決衝突的方法:開放地址法(線性探測、平方探測、)、分離連結法、雙雜湊、再雜湊等
演算法二 : 頭條很喜歡問這個: 
一個無序,不重複的陣列,從中取出N個數,求讓這個N個數和為M的組合有多少個?
複製程式碼

二面

簡單的介紹了一下專案

  1. 問我的專案,為什麼使用背景滾動,如果是多個精靈物件來滾動怎麼處理?(還是一樣)
  2. 還是問的另一個專案的一些細節(對自己的專案一定要熟悉)
  3. 說說從輸入URL,發生了什麼,以HTTPS的角度講,細講了一下SSL握手。 數字簽名 數字證照的作用。為什麼我們需要HTTPS,為什麼它是安全的?
  4. 函式節流怎麼設計,拖動事件,不需要頻繁觸發,而且隔一段時間觸發一次。 函式節流的實現。
  5. 設計一個認證的方案,免登陸的方案。 一開始提出cookie+session,一直問我怎麼產生這些資訊,我說在服務端產生,資訊存到資料庫中,通過HTTP 響應SET-Cookie返回一個cookie,設定了它的過期時間expire等,然後傳輸回客戶端,客戶端之後每次請求都會帶上這個cookie。後面安全性,我說MD5,他說不可逆不行。 後面面試官跟我說 用token, 我們不需要實際把使用者的資訊存在cookie裡面,我們把使用者名稱等資訊可以使用非對稱加密演算法,加密後得到一個隨機字串,這個就是token然後存在客戶端,你每次傳送到服務端可以通過解密token來獲取這個資訊。

6.React 的virtual DOM的dom diff演算法細節。 三面

兩道邏輯推理題
document.write怎麼影響文件的 
比較它在onload中執行和在文件建立時不同時機的區別 
3.設計一個彈幕,怎麼優化。 需要考慮RenderLayer,我跟他說了一下canvas
寫KMP演算法出來
複製程式碼

請留言告訴我你會多少題?

在這裡給大家提供一個java交流學習的地方,java進階群:744642380,

1)具有1-5工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的可以加我。

2)在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的可以加我。

3)如果沒有工作經驗,但基礎非常紮實,對java工作機制,常用設計思想,常用java開發框架掌握熟練的可以加我。

4)想交流學習java的可以加我。

相關文章