解析 BAT 大廠的經典面試題(上篇)

 解析 BAT 經典面試題

Hello,大家好。我是公衆號 “八點半技術站” 的小編 - Bruce.D。

今天是週四(2020-05-14),分享一句諺語 “讀書有三到,心到口到眼到” 分享給大家的是 「工具 模塊」- 協議狀態碼。

很多人對 BAT 以及其他大廠,也是朝思暮想。也因爲一些原因,暫時還未能加入。大廠中有很多經典面試題,直到現在也會用,不要問小編爲什麼知道()。

因此歡迎熱愛 IT編程的各位精英,歡迎進入wechat技術羣(底部有二維碼)一起交流成長

花幾分鐘時間看看經典BAT面試題,瀏覽瀏覽,或許對你有用!!!

1

1. 給一個函數,返回 0 和 1,概率爲 p 和 1-p,請你實現一個函數,使得返回 0 和1 概率一樣。

思路:

1、執行兩次給的函數,第一次返回1,第二次返回0的概率爲(1-p)p

2、執行兩次給的函數,第一次返回0,第二次返回1的概率爲p(1-p)

3、循環執行兩次函數,如果一次返回0,一次返回1則返回0或1

代碼:

2

2. 10 億個 url,每個 url 大小小於 56B,要求去重,內存 4G。

思路:

1.首先將給定的url調用hash方法計算出對應的hash的value,在10億的url中相同url必然有着相同的value。

2.將文件的hash table 放到第value%n臺機器上。

3.value/n是機器上hash table的值。

將文件分佈在多個機器上,這樣要處理網路延時。假設有n臺機器。

>>首先hash文件得到hash value v

>>將文件的hash table 放到第v%n 臺機器上。

>>v/n是機器上hash table的值。

分析:

將文件的url進行hash,得到值value,相同的url的文件具有相同的value,所以會被分配到同一臺機器v%n上。在同一臺機器上的重複的url文件具有相同的value/n值,如果出現了衝突,不同的url在同一臺機器上也可能有相同的value/n值。在每個機器上將value/n值作爲key,url值作爲value構成hash表進行去重。最後將內存中去重後的hash表中的value值即url寫入磁盤。合併磁盤中的各部分url文件,完成去重。

56byte;

4G =4*1024=4096kb=4096*1024 byte;

     


3

3. DNS 解析過程(域名)

主機解析域名的順序

1. 找緩存

2. 找本機的hosts文件

3. 找 DNS 服務器

注:配置IP 和 主機時,要記得修改 etc/hosts 文件,因爲有些應用程序在主機內的進程之間通信,會用本機的主機名,如果主機不能解析到正常IP地址,那麼通信失敗。

Q:瀏覽器如何通過域名去查詢URL對應的 IP 呢?

A:

1. 瀏覽器緩存:瀏覽器會按照一定的頻率緩存DNS記錄。

2. 操作系統緩存:如果瀏覽器緩存中找不到需要的 DNS 記錄,那就去操作系統中找。

3. 路由緩存:路由也有DNS 緩存。

4. ISP 的 DNS 服務器:ISP 是互聯網服務提供商的簡稱,ISP 有專門的DNS 服務器應對DNS 查詢請求。

5. 根服務器:ISP的DNS服務器還找不到的話,它就會向根服務器發出請求,進行遞歸查詢(DNS服務器先問根域名服務器.com域名服務器的IP地址,然後再問.com域名服務器,依次類推)。

Q:瀏覽器如何通過域名去查詢URL對應的 IP 呢?

A:

大的高併發網站可能不止一個IP 地址,根據不同的網絡他們會有很多的IP 來做集羣。

     

恭喜你,又讀完了一篇文章。

在這裏,希望你看完的 每篇文章 都能對自己有所提升(哪怕是幫助你再次鞏固記憶)。

微信 : xzzs730(長按左側二維碼添加)

技術羣:上方微信+備註

(技術交流)

IT面試羣:上方微信+備註

(技術面試)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章