4 1虎牙客戶端實習一面準備與實際的面試情況

2021-10-04 16:58:08 字數 1403 閱讀 9654

1. 各類演算法時間複雜度

2. 程序、執行緒

3. fork()的作用

作用:通過乙個系統呼叫,建立乙個與原來幾乎完全相同的程序

但是返回值有兩個,在子程序中返回0,在父程序中返回子程序的pid

4.同步機制

執行緒間通訊方式:

socket

共享記憶體

事件訊息佇列

程序間同步方式

參考鏈結

臨界區:保證同一時刻只有乙個執行緒能訪問資料,在乙個執行緒進入臨界區之後,其他要進入臨界區的執行緒將會被掛起。

互斥量(mutex)互斥量只有乙個,可命名,跨程序

訊號量:

事件:等待某個時間發生

5. 資料庫索引

這部分沒準備的,就說了個主鍵自動建立索引,然後在查詢比較頻繁的列上建立索引。需要加強。

6. tcp、udp如何實現的,握手過程

7. 事務的四大特性、事務隔離、鎖

8. 設計模式

單例模式:餓漢(需要用到才建立)、懶漢(開始就建立)

當socket接收緩衝區有新資料到來時,會發出readread()訊號,因此為該訊號新增槽函式以讀取資料

通過connecttohost(ip,port)連線伺服器

當伺服器被客戶端訪問時,會發出newconnection()訊號,然後可以通過乙個qtcpsocket類接受客戶端的訪問(server->nextpendingconnection())

當乙個使用者下線時,會向服務其傳送乙個下線資訊,然後伺服器廣播這個使用者的離線

點到點聊天

登入成功時伺服器端會向客戶端返回伺服器端儲存的所有使用者資訊,客戶端接收使用者資訊後將其儲存在friendlist中顯示在聊天視窗右側,儲存資訊中包含使用者的ip位址,當雙擊好友列表中的成員時將會建立短暫的socket連線,此時當前客戶端就可以向目標客戶端傳送資訊

離線訊息

檔案傳輸功能

首先通過tcp連線向對方傳送乙個傳送檔案的請求,其中包含檔名以及檔案的大小資訊,當對方選擇了接收檔案的儲存目錄時,傳送方首先建立乙個udp的套接字,通過qudpsocket類中bind方法和connect方法繫結接收方的ip和埠,連線建立後,傳送方將檔案分割成多個大小相同的包,每個包的大小為500位元組(char [500]小於區域網的mtu)同時給每個包編號為seg = 1,2,…,n。首先用writedatagram方法傳送第乙個包,接收方接受到該seg序號的包以後,用該序號給傳送方傳送乙個ack的確認號,並將該資料報寫入檔案。當接收方接收到seg的確認號以後,便將seg + 1的包傳送給接收方;若間隔一段時間後仍未收到seg的確認號,則認為超時出現,重新傳送序號為seg的包給接收方。如此迴圈,知道傳送至最後乙個包。

位元組跳動客戶端一面

4.jm的記憶體結構 5.作業系統的快取對應jvm的記憶體結構的哪一塊 內容 編譯原理 計算機並不能直接地接受和執行用高階語言編寫的源程式,源程式在輸入計算機時,通過 翻譯程式 翻譯成機器語言形式的目標程式,計算機才能識別和執行。這種 翻譯 通常有兩種方式,即編譯方式和解釋方式。編譯方式 解釋方式 ...

位元組跳動客戶端實習一面面經

很不幸,由於太菜,上次三面完掛了,這次又投了個部門,一面過程如下 1.簡單介紹下實驗室專案,對比下ndn和cdn,ndn中網路交付的時候用的什麼協議 2.https了解嗎?3.http中的網路交付過程,開啟乙個網頁的過程,web伺服器怎麼知道你要請求的檔案在哪?主要是url解析出路徑 4.tcp和u...

阿里巴巴實習內推一面經驗總結(客戶端開發崗)

今天下午快吃飯的時候,阿里巴巴內推一面的 面試就打了過來。自我感覺一般般,居然在應該回答得很好的專案經歷以及專案積累上栽了坑,下面記錄下這次的一面過程。雖然我投的職位是客戶端開發崗,但是面試官居然沒問我多少關於客戶端開發方面的問題,可能是我前一兩個關於android開發的問題回答得太差,讓面試官沒啥...