天天看點

位元組跳動php面試題(二)一面(約1h)

閱讀量: 106

位元組跳動php面試題(二)一面(約1h)

一面(約1h)

  • 在面對未知的流量暴增,可以預先怎麼處理
  • 如何限流,限流算法,對于ddos攻擊怎麼處理
  • PHP數組的底層實作
  • 分布式事務
  • RPC相對于傳統的API調用的優點
  • 服務排程中心的感覺與動态上下線
  • MySQL的索引,為什麼是B+而不是平衡二叉樹
  • 索引查找在Linux的磁盤上是怎麼操作的
  • 聚簇索引相對于B+索引的優點
  • 如何分析SQL執行慢的原因
  • Redis連接配接時的connect與pconnect的差別
  • Redis有哪些結構時間複雜度較高
  • Redis hash的實作
  • 算法題: 在1個10G大小的檔案中,存儲的都是int型的資料,如何在記憶體使用小于8M的情況下進行排序
  • 設計題: 以微網誌為例,有1個億的使用者,同時使用者之間有關注和粉絲,使用者的關注和取關操作比較頻繁,如何設計架構和API接口 二面(約1.5h) 二面主要以自己的項目為切入點,進一步考察你對項目中知識點的把握程度,我這裡是以一個 自己撸的小項目 程序管理工具為項目背景
  • 守護程序是什麼,怎麼實作
  • PHP是否适合做守護程序,為什麼(記憶體管理這一塊)
  • PHP的垃圾回收機制
  • 程序間通信方式
  • 共享記憶體是怎麼實作的
  • 怎麼檢視Linux伺服器的負載,及判斷哪些操作引起的負載過高
  • MySQL的IO過高怎麼優化,分庫分表及分區
  • MySQL的索引結構,myisam的索引結構, innodb的索引結構,innodb為什麼必須要有主鍵索引
  • 添加索引,為什麼可以減少io操作(磁盤頁)
  • nginx的負載均衡算法
  • 算法題: 忘了
  • 算法題:查找一個字元串中最長的無重複字串

    上面是我基本還記得的一些題目,考察的力度相對比較深,是以,請選擇一個自己比較熟悉的項目,因為面試官是會剖析到底層的

三面(約0.6h)

三面與二面的内容差不多,沒有更深的問題,但是,需要注重細節,同時三面面試官有時間會放煙霧彈,堅定自己的立場就好

面試題: 在一個橫向和縱向都是遞增的有界二維坐标軸中,如何快速判斷某個數是否存在于這個二維坐标中

面試題:設計一個定時任務管理器(從我同僚那打聽到的,我隻有上面一個算法題)

Hr面(約0.5h)

hr小姐姐:你有什麼心儀的公司嗎

我:大廠,類似于BAT這種

hr小姐姐:為什麼呢?

我:我感覺 阿裡的架構不錯,微網誌鳥哥待過,技術架構肯定吊吊的。。。

hr小姐姐:你跟我在北京面的其他候選人都不太一樣啊,他們都不屑于去這些公司,感覺想進就進,他們比較傾向于滴滴,頭條這些年輕,發展比較快速的公司

我:卒。。。(畢竟我畢業才一年半啊-_-,校招還因為自己不在意,完美錯過了所有大廠的招聘)

總結

頭條面試,算法是必考項,但是面試官都是讓我給出思路,也沒寫多少行代碼

涉獵範圍一般,基本就是Redis MySQL ,Nginx比較少,可能配置簡單吧

深度較深,很少人會去關注PHP的垃圾回收,何為垃圾,線程安全,array的HashTable實作這些内容, Redis Hash表等