面試官是個(gè)小姐姐,好溫柔好好,是我面過最為舒服的面試官了------------------------更新面經(jīng) 后端一面 幾乎全程項(xiàng)目拷打手撕 二叉樹層序遍歷你在研究生這個(gè)項(xiàng)目參與度比較多嗎?它實(shí)現(xiàn)了一個(gè)登錄模塊,把用戶抽離,多登陸的token共享,token踢人下線,能詳細(xì)講講嗎?如果踢人的話你們是想踢已經(jīng)登錄的呢?還是新加入的就不讓登錄了?為什么會(huì)出現(xiàn)頻繁登錄的事情正則表達(dá)式是否正確,是匹配的什么信息?用戶登錄的時(shí)候,讓用戶填寫的有哪幾個(gè)選項(xiàng)?驗(yàn)證碼你們這邊會(huì)存嗎?驗(yàn)證碼是誰生成的?驗(yàn)證碼有時(shí)效性嗎?驗(yàn)證通過后,驗(yàn)證碼是存在redis里面,你們的后端存儲(chǔ)Mysql,就只有redis,沒有Mysql之類的嗎?那么用戶登錄的時(shí)候,就會(huì)實(shí)現(xiàn)一個(gè)token返回給用戶是嗎?那token返回是什么樣的形式呢?是放在請(qǐng)求的頭(head)里面,還是請(qǐng)求的請(qǐng)求體(body)里面?那如果下一次用戶登錄的時(shí)候,他再開一個(gè)頁面的時(shí)候,他還需要再次登錄嗎?這個(gè)token的保存是誰來保存的?你們這個(gè)服務(wù)是一個(gè)大后端是嗎?那后端上面是不是提供了很多請(qǐng)求,請(qǐng)求API,我們?cè)隍?yàn)證的時(shí)候,那么多請(qǐng)求,所有用戶發(fā)過來的請(qǐng)求,是否合法,存在或不存在,如果存在的話它的有效期是多少?比如你在設(shè)計(jì)的時(shí)候,100個(gè)API都能去驗(yàn)證是否有效性?支付網(wǎng)關(guān)回調(diào)采用可靠支付一致性的設(shè)計(jì),這邊怎么去做的?seata是什么?假如說一個(gè)交易的時(shí)候,某個(gè)人惡意發(fā)起了二次交易,他開了一個(gè)窗口,出現(xiàn)了回滾,但在出現(xiàn)回滾的時(shí)候,他又發(fā)起了二次交易,那他之前完成的那些代金券扣除,積分扣除該怎么處理?那他看到的積分和代金券是已經(jīng)扣除的但是在第一次交易沒有完成之前,他又發(fā)起了一個(gè)支付,那他代金券,積分,等顯示的是扣除后的還是扣除前的?你用redis鎖避免回執(zhí)超發(fā),這個(gè)回執(zhí)超發(fā)怎么理解?hashset和Arraylist這些是線程安全的嗎?Java有哪些線程安全的?hashtable怎么做到線性安全的呢?synchronized是什么鎖呢?hashtable的性能高嗎?如果是悲觀鎖的話?