C++面試題. 小米社招

一面:

  1. C++面向對象的三種特性?(每條詳細說說)
  2. C++繼承和組合?你在實際項目中是怎麼使用的?什麼情況下使用繼承?什麼情況下使用組合?
  3. C++構造函數可以是虛函數嗎?爲什麼?
  4. C++析構函數可以是虛函數嗎?爲什麼要將析構函數設置爲虛函數?
  5. C++如何實現多態?虛表指針是什麼時候被初始化的?實例化一個對象需要那幾個階段?(三個)
  6. C++偏特化?
  7. 重載、重寫、覆蓋?
  8. static關鍵字的作用?(要全面)怎麼實現的?
  9. inline和宏定義的區別?inline是如何實現的?宏定義是如何實現的?
  10. 指針和引用的區別?怎麼實現的?
  11. malloc和mmap的底層實現?malloc分配的是什麼?(底層詳細回答)
  12. Linux進程地址空間佈局?(這裏又問道虛擬內存和分頁、頁表這些東西)
  13. tcp的握手揮手過程?(詳細)tcp爲什麼要連接?tcp建立連接這裏你是怎麼理解的?
  14. 半連接隊列?全連接隊列?
  15. tcp流量控制和擁塞控制?
  16. time_wait狀態?爲什麼是2msl?
  17. 有很多close_wait怎麼解決?
  18. 阻塞和非阻塞?同步和異步?
  19. 五種IO模型?
  20. select和epoll有什麼區別?epoll的LT和ET模式?
  21. udp爲什麼是不可靠的?bind和connect對於udp的作用是什麼?
  22. NAT是什麼?底層實現原理?
  23. 斐波那契數列的非遞歸寫法?(寫出代碼)
  24. 共享桌面用你熟悉的任意畫圖工具畫項目架構圖?(我用的ProcessOn)
  25. 聊項目?
  26. 總共用時兩個小時吧,問了很多,有些已經想不起來了。

二面:

  1. 聊項目
  2. 1

    2

    3

    4

    5

    6

    struct{

        char a;

        short b;

        int c;

        char d;

    };

    佔多少內存?然後又扯到位域?
  3. map和unordered_map的底層實現?目前map支持map[10] = 20這種操作,其底層怎麼實現的?和insert有什麼區別?
  4. 一個unique_ptr怎麼賦值給另一個unique_ptr對象?(std::move)
  5. 1

    2

    3

    int *sp = new int{10};

    shared_ptr<int> sp1(sp);

    shared_ptr<int> sp2(sp);

    這段代碼會有什麼問題?引用計數如何變化?
  6. 1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    #include <sys/types.h>

    #include <unistd.h>

     

    pid_t pid1;

    pid_t pid2;

     

    pid1 = fork();

    pid2 = fork();

     

    cout << "cur pid:"<<getpid() << ",pid1:" << pid1 << ",pid2:" << pid2 << endl;

    這段代碼打印輸出?(寫出來:四組)
  7. pthread_detach和pthread_join的作用?
  8. 殭屍進程和孤兒進程?
  9. 一個進程能不能綁定到一個cpu?系統調用接口是什麼?線程呢?
  10. 對於使用tcp通信的兩端,如果client已經退出,此時服務端繼續send會出現什麼問題?這個當然就要扯到SIGPIPE信號了?
  11. 一個整數數組,可能是降序或升序,也可能是先升序再降序,求最大值?(幾秒後就讓我趕緊說思路)
  12. 寫代碼:單鏈表,求中部的N個節點的頭節點和尾節點?(需要寫測試用例)

三面:

  1. 爲什麼離職?
  2. 聊項目?
  3. 一致性hash?能不能用到你剛纔的項目中?
  4. c語言的函數調用棧底層詳細說說?
  5. static變量存放在哪裏?什麼時候分配的內存?(這裏感覺面試官優點不太清楚,我就詳細說了說)
  6. k-v數據庫如果get有百分之80的數據都不命中怎麼解決?
  7. 緩存穿透問題怎麼處理?
  8. map的底層實現?zset的底層實現?爲什麼zset不使用紅黑樹作爲其底層實現?爲什麼map不使用跳錶作爲其底層實現?
  9. 寫道題吧:非遞歸求二叉樹的高度?(需要寫測試用例)

不得不說hr的效率是真的高,一天時間走完offer審批流程!

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