大应科技一面技术面面经1.上来先进行自我介绍2.开始介绍项目,进行项目的拷打3.介绍项目的登录注册流程 以及项目为什么要使用两个拦截器来进行拦截 每个拦截器有什么作用4.为什么要给redis存储的login:Token这个键加上过期时间,是为了实现什么功能5.讲一下你是怎样使用redis的Zset数据结构实现点赞排行榜的 , 你了解zset的地城数据结构嘛,让你用java代码来写一个跳表的数据结构你整体的实现思路说一下(差不多和手撕一样)6.看你使用了redis的set集合实现用户关注和获取共同关注功能你能讲讲具体实现思路嘛7.看你项目中使用了feed流,那我问你现在有一个大v他是有100万粉丝,发送了一条博客笔记,你怎样设计它的粉丝获取到这个笔记的流程.(feed推拉模式相结合实现)8.你还使用了redis的bitmap数据结构实现用户签到功能,你给我介绍一下业务的实现思路,如果我让你在这个上面统计每个用户的连续签到天数你怎样使用这个数据结构来进行这个业务的开发9.你项目中redis自己设计了分布式锁,你能给我讲讲你是怎样设计的,你知道Redssion实现的分布式锁嘛,你阅读过它的源码嘛,讲一讲他底层的实现10.项目结束了我问一些基础知识吧 spring的事务传播等级11.你项目中使用aop嘛,结合你项目讲一讲aop12.看到你简历上还写了 aqs 给我讲一讲aqs底层原理13.ReentrantLock的公平锁和非公平锁基于aqs是怎样实现的14.你了解数据库嘛? 给我讲一讲mysql的唯一索引在什么情况下会发生死锁15.你讲一讲mysql的索引16.现在有一个数据表对这个表中的一个varchar字段加上索引,你给我讲一讲在B+树中根据这个字段索引查询的流程17.加入这个varchar字段很大,你怎样对这个索引进行优化(前缀索引优化) 具体原理呢18.那你再给我讲一讲基于主键索引的范围查询是怎样实现的 ,所有叶子节点是通过双向链表还是单向链表连接的,每个叶子节点内部的数据页是怎样的结构19.剩下的忘记了 手撕算法 最长重复子串(有时间复杂度要求) 接着开始反问阶段1.我还有具体什么方面需要提升的或者一些建议? 你的前面的回答我觉得是上等的,但是后面有些技术细节你的回答让我觉得你是心里明白但是有些地方并不能让特别清楚的给我说出来,整体上来说是中上,但是你语言的表达逻辑能力需要提升,有的时候一个技术涉及到多个点不能这里扯一下那里扯一下,你要循序渐进引导面试官说出来,这对你以后另外的面试非常重要,要锻炼你语言的逻辑能力. 当然我说这几个点并不是代表在我这里不给你过,而是给你的一些建议,我平常面试别人都是不到30分钟,今天面试你面试了快一个小时.2.我问他我们部门的业务是什么或者我入职后会进行什么业务工作 接着他说首先实习生我们一般是不会让他直接上手项目的,前两周我们一般都会让他看项目的代码.具体业务是和知识图谱有关.3.什么时候有后续通知 他说一般来说今天晚上就会有通知 但是hr最近忙明天后天休息 可能要到下周1 周2 结束了 整体上来说面试官真的很好,很和蔼可亲,很尊重我,和他面试真的就像一个前辈指导你一样,面试体验非常好.另外除了spring传播等级忘记了,剩下的基本上都回答出来了.求offer#暑期实习还是日常实习##暑期实习##牛客AI配图神器#