2020某大佬位元組一面的題目解答

2021-10-14 16:35:53 字數 3059 閱讀 9907

unicode是一種字元編碼方案,為每種語言中的每個字元都設定了統一的二進位制編碼,以實現跨語言、跨平台進行文字轉換、處理的要求。

延伸:unicode和utf-8的區別:

unicode是一種字符集。

utf-8是一種編碼規則(以8位為乙個編碼單位的可變長單位編碼)。

例如:某http請求:表示從2000070位元組開始傳送。

延伸:ftp實現斷點續傳:

ftp中用get命令拿資料的時候在檔名後面加上要獲取的起始位置。

ftp實現斷點續傳的三個條件:

1.需要ftp伺服器支援該功能。

對同乙個域的多個資源的get請求可以合併在乙個socket連線中執行。

延伸(具體化):什麼是pipeline?

通常,http請求是按順序發出的,只有在完全接收到當前請求的響應之後才會發出下乙個請求。根據網路延遲和頻寬限制,在伺服器看到下乙個請求之前,這可能會導致顯著的延遲。http/1.1允許多個http請求一起寫入乙個套接字,而不需要等待相應的響應。然後,請求者等待響應按照請求的順序到達。對請求進行pipeline操作可以顯著提高頁面載入時間,特別是在高延遲連線上。pipeline還可以顯著減少tcp/ip包的數量。典型的mss(最大段大小)範圍在536到1460位元組之間,可以將幾個http請求打包到乙個tcp/ip包中。減少載入頁面所需的包的數量對整個網際網路都有好處,因為包的減少自然減少了ip路由器和網路的負擔。符合http/1.1標準的伺服器需要支援pipeline。這並不意味著需要伺服器對響應進行pipeline處理,而是要求伺服器在客戶端選擇pipeline處理請求時不會失敗。這顯然有可能引入一種新的傳播式bug,因為其他流行的web瀏覽器都沒有實現pipeline。

解決問題

滑動視窗協議是傳輸層進行流量控制的一種措施,接收方通過通知傳送方自己的視窗大小,從而控制傳送方的傳送速度,從而達到防止傳送方傳送速度過快而導致自己被淹沒的目的,並且滑動視窗分為接收視窗和傳送視窗。tcp的滑動視窗的可靠性是建立在「確認重傳」基礎上的。傳送視窗只有收到對方對於本段傳送視窗內位元組的ack確認,才會移動傳送視窗的左邊界。接受視窗只有在前面所有的段都確認的情況下才會移動左邊界。當在前面還有位元組未接受但收到後面位元組的情況下,視窗不會移動,並不對後續位元組確認。以此確保對方會對這些資料重傳。

引入滑動視窗的原因及引入前網路如何傳輸:

滑動視窗協議的基本原理就是:

頭阻塞:

tcp頭阻塞:tcp資料報是有序傳輸,中間乙個資料報丟失會等待該資料報重傳,造成後面的資料報阻塞。

延伸:http頭阻塞?

程序間通訊(ipc,interprocess communication)是指在不同程序之間傳播或交換資訊。

ipc的方式通常有管道(包括無名管道和命名管道)、訊息佇列、訊號量、共享儲存、socket、streams等。其中 socket和streams支援不同主機上的兩個程序ipc。

詳細:

統計字串在文字出現次數的三種命令:

1.單個字串(可不加引號)

grep -o targetstr filename | wc -l
多個字串(加引號)

grep -o targetstr_1\|targetstr_2\|targetstr_3…… filename | wc -l
2.awk

awk -v rs="@#$j" '' filename
3.awk

awk  'end' filename
linux 中sort命令:

用於將文字檔案內容以行為單位加以排序

參  數:

-b 忽略每行前面開始出的空格字元。

-c 檢查檔案是否已經按照順序排序。

-d 排序時,處理英文本母、數字及空格字元外,忽略其他的字元。

-f 排序時,將小寫字母視為大寫字母。

-i 排序時,除了040至176之間的ascii字元外,忽略其他的字元。

-m 將幾個排序好的檔案進行合併。

-m 將前面3個字母依照月份的縮寫進行排序。

-n 依照數值的大小排序。

-o《輸出檔案》 將排序後的結果存入指定的檔案。

-r 以相反的順序來排序。

-t《分隔字元》 指定排序時所用的字段分隔字元。

+《起始字段》-《結束字段》 以指定的字段來排序,範圍由起始欄位到結束欄位的前一欄位。

--help 顯示幫助。

--version 顯示版本資訊

merge操作會生成乙個新的節點,之前的提交分開顯示。而rebase操作不會生成新的節點,是將兩個分支融合成乙個線性的提交。

幻讀:乙個事務在前後兩次查詢同乙個範圍的時候,第二次讀取到了其他事務新插入的行。

(解決:在 mysql innodb 中,repeatable read 隔離級別不存在幻讀問題,對於快照讀,innodb 使用 mvcc 解決幻讀,對於當前讀,innodb 通過 gap locks 或 next-key locks 解決幻讀。)

不可重複讀:

在乙個事務中多次讀取同乙個資料時,結果出現不一致。   (解決:在 mysql innodb 中,repeatable read 隔離級別使用 mvcc 來解決不可重複讀問題。)

位元組跳動一面

最後面試官你好,我叫 9x年2x周歲,xx大學18屆畢業生 目前在公司研發部任職前端開發工程師,從事前端研發工作有2年了 我們公司的主要業務是關於企業融資和企業貸款這方面的 我目前主要負責公司官網的研發和維護,主要使用的技術棧是 vue 在公司官網開發中具體負責專案的管理,頁面結構的搭建,企業管理,...

位元組一面紀實

1 自我介紹 2 elasticsearch原理,基於哪個庫實現的?mysql的like查詢和elasticsearch查詢對比,時間複雜度 3 redis的資料結構有幾種 4 zset實現原理,時間複雜度 5 mysql用什麼儲存引擎,innodb有沒有雜湊索引?為什麼不用b樹 而用b 樹?6 演...

位元組一面涼經

畢設初稿差不多完成了,就想著要不投投簡歷,萬一能得到更好的機會呢?想象很美好.現實有點骨感。前段時間牛客網上投了位元組,約今天面試。昨天畢設初稿才交稿,然後就沒多少時間去看一些知識點,講真好多東西我都忘了.先讓我介紹一下學校的專案經歷和實習經歷。然後三道演算法題。1.能不能用棧來實現佇列 我不知道我...