騰訊微信支付暑期實習一面(二面)

微信支付面試等了好久,之前面過一次,結果現在到官網流程了,好迷。。。不知道是一面還是二面,本來是牛客視頻,結果面試官網絡不好,牛客寫完代碼後換電話了。

面試題

1、上來就做題!都沒自我介紹!?

公司員工每天上下班需要進行打卡操作,工作時間爲早上9點到晚上5點。遲到或者早退半小時當天按曠工處理。hr能查看所有員工的打卡信息,員工只能查看自己的打卡信息。
請編寫一個能支持以上場景的程序。

/**
 * 以下代碼是簡單僞代碼實現
 * 當時沒有考慮併發,面試官沒有提
 */
public class Time {
    private DataTime firstTime;
    private DataTime lastTime;
    
    public void setFirstTime(DataTime firstTime){
        this.firstTime  = firstTime;
    }
    public void setLastTime(DataTime lastTime){
        this.lastTime  = lastTime;
    }
   
}

Public class Person{
    private Time personTime;
    private boolean isLate;
    // 僞代碼
    public void firstCall(){
        personTime.setFirstTime(currentTimeMillis());
        //如果超過九點半則記爲曠工 
        if(currentTimeMillis()){
            this.isLate = true;
        }
    }
    
    // 僞代碼
    public void lastCall(){
        personTime.setLastTime(currentTimeMillis());
        //如果早於下午4:30就記爲曠工 
        if(currentTimeMillis()){
            this.isLate = true;
        }
    }
    
    //hr獲取打卡時間
    public Time getTime(){
        return this.personTime;
    }
    //獲取是否曠工
    public boolean isLate(){
        return this.isLate;
    }
}

2、項目介紹、難點

項目階段全程我在說,說完之後問了一下細節,爲什麼消息隊列使用Redis,有了解過其他的嗎
我提了一下Rabbitmq

3、項目中的sql優化問題

1、索引優化
2、聯合查詢優化

4、索引底層實現,爲什麼採用B+樹實現?

1、B+樹
2、多路搜索、數據在葉子節點,契合磁盤存儲原理,局部性原理和預讀取


5、那你知道B+樹是幾層嗎?

讀者可以參考這篇文章:https://blog.csdn.net/qq_41999455/article/details/104946754

6、MySQL事務有用過嗎?

講了一下幾種隔離級別的使用

7、那語言這塊用什麼多一些?C++寫過嗎?

因爲我簡歷上寫了Java C++ Go,但是Java用的最多,C++沒有寫過完整項目。。。

8、Java中的map有哪些?

HashMap hashTable

9、它們之間什麼區別?

1、線程安全問題
2、擴容機制不同
3、Hash值計算不一樣
4、HashMap允許null做鍵值,hashtable不允許null做鍵值

10、有了解過Java中的NIO嗎?原理是什麼?

1、基於直接內存實現
2、NIO底層原理,同步非阻塞的IO模型,它是面向緩衝區的

11、Java的內存數據區介紹一下

講了一下Java的運行時數據區,各類數據存儲

12、Linux中的IO多路複用知道嗎?講一下

從select、poll、epoll詳細說了一下底層實現
這一塊希望讀者可以深入瞭解一下,與內核相關

13、分佈式有了解過是吧?知道分佈式事務嗎?CAP?講一下

1、分區容錯性、高可用性、數據一致性;
2、三者不能同時滿足,一般的分佈式系統都會優先滿足高可用、放棄強一致性選擇最終一致性
3、從單應用架構的事務說起,介紹分佈式事務的出現意義,目前分佈式事務常用的2PC、3PC都講了一下

14、除過2PC、3PC還有什麼協議算法呢?

paxos算法以及zookeeper使用的ZAB協議算法

15、有實際場景應用過嗎?

16、前端用過是吧,能說一下嗎?

後臺開發問我全棧。。。
前端都是很久之前寫過的簡單頁面了。。。

17、那你知道目前哪些組件、框架比較好嗎?

提了一下vue,我沒用過。。。

18、編譯原理學過了嗎?

還沒有,這學期纔開。。

19、那今天就這樣吧,後續會有人聯繫你下一面。

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