面试官是个小姐姐,好温柔好好,是我面过最为舒服的面试官了------------------------更新面经 后端一面 几乎全程项目拷打手撕 二叉树层序遍历你在研究生这个项目参与度比较多吗?它实现了一个登录模块,把用户抽离,多登陆的token共享,token踢人下线,能详细讲讲吗?如果踢人的话你们是想踢已经登录的呢?还是新加入的就不让登录了?为什么会出现频繁登录的事情正则表达式是否正确,是匹配的什么信息?用户登录的时候,让用户填写的有哪几个选项?验证码你们这边会存吗?验证码是谁生成的?验证码有时效性吗?验证通过后,验证码是存在redis里面,你们的后端存储Mysql,就只有redis,没有Mysql之类的吗?那么用户登录的时候,就会实现一个token返回给用户是吗?那token返回是什么样的形式呢?是放在请求的头(head)里面,还是请求的请求体(body)里面?那如果下一次用户登录的时候,他再开一个页面的时候,他还需要再次登录吗?这个token的保存是谁来保存的?你们这个服务是一个大后端是吗?那后端上面是不是提供了很多请求,请求API,我们在验证的时候,那么多请求,所有用户发过来的请求,是否合法,存在或不存在,如果存在的话它的有效期是多少?比如你在设计的时候,100个API都能去验证是否有效性?支付网关回调采用可靠支付一致性的设计,这边怎么去做的?seata是什么?假如说一个交易的时候,某个人恶意发起了二次交易,他开了一个窗口,出现了回滚,但在出现回滚的时候,他又发起了二次交易,那他之前完成的那些代金券扣除,积分扣除该怎么处理?那他看到的积分和代金券是已经扣除的但是在第一次交易没有完成之前,他又发起了一个支付,那他代金券,积分,等显示的是扣除后的还是扣除前的?你用redis锁避免回执超发,这个回执超发怎么理解?hashset和Arraylist这些是线程安全的吗?Java有哪些线程安全的?hashtable怎么做到线性安全的呢?synchronized是什么锁呢?hashtable的性能高吗?如果是悲观锁的话?