猿辅导斑马电商Java实习一面

上周三还是周四在牛客推的简历,约了11.2面试,这儿做个记录。

一开始面试官进场,老话题,自我介绍。

介绍完让我讲讲自己的项目,讲完正式开始面试。

先问了我怎么维护登录状态。答Spring Security可以维护一个ThreadLocal来存储,然后扯了扯ThreadLocal的原理和使用场景,并且因为线程池复用的时候不能保证是同一个线程,Spring Security会讲Session退回http session存储。面试官接着问这是单机模式,分布式怎么办,答token或者redis存储。然后让我讲讲token,我详细讲了JWT的原理和结构,扯了扯CSRF攻击,这部分大概结束了。

然后问了我怎么维护redis和数据库之间的一致性,答双重删除。

之后问数据库的可重复读怎么解决并发问题,答MVCC,并解释了其原理。并且扯了扯Key Lock,Gap Lock,Next-Key Lock解释这个可以解决幻读。

问怎么优化数据库索引,答慢查询explain一套,举了个like前缀的例子,问为什么前缀会失效,详细解释了B+树的规则,联想到了最左匹配原则,解释了一下最左匹配原则,再问哈希索引和B+树优劣,答不方便范围查询以及哈希碰撞。

问redis怎么解决分布式的高可用,答哨兵模式,解释了哨兵的工作原理,raft投票机制,重新选取主节点流程,并且讲了讲怎么防止脑裂的数据丢失。

问输入网址之后发生了什么,答网络一套,引申出了SpringBoot的工作流程,扯了扯适配器模式。

开始做题。
第一题:给一个表示多位数的链表,让多位数加一。我给了三个解决方案:
一、转换成数字后再加一再转换成链表。
二、用栈保存,一旦要进一就弹出一个。
三、先反转再加一再反转。
第二题:有点难度,求二叉树最大宽度,好像是面试官自己的变种。
答填充后bfs。

面试结束后马上收到了二面通知,这个面试官真的人好好,全程微笑,回答问题也给了及时的反馈,不过算法题确实有点难。
#猿辅导##Java工程师##实习##面经#
全部评论
tql
2 回复
分享
发布于 2020-11-02 21:36
力扣662 https://leetcode-cn.com/problems/maximum-width-of-binary-tree/ 二叉树最大宽度 和这个一样吗 求问楼主
点赞 回复
分享
发布于 2020-11-03 11:35
小红书
校招火热招聘中
官网直投
请问大佬是大三上学期投的日常实习吗
点赞 回复
分享
发布于 2021-03-26 21:05

相关推荐

6 31 评论
分享
牛客网
牛客企业服务