2021.3.8携程【校招】后台开发一面面经
今天携程一面,面试官长得挺帅的哈哈哈!
然后面试官针对我简历中的项目问了很多问题!
还有面试官很喜欢问Redis方面的问题!
大家加强啦!
下面是面试的题目!
补充:
- 我说我研究生的课题里面有200w的运动传感器数据需要处理,所以自己写了个前后端分离的分布式项目来处理,一方面是为了处理数据,另一方面是检验自己在B站学习的内容。
- 接着我就表现一下自己,讲了这个是三表连接,然后讲了我如何优化查询,从explain关键字的分析到根据where 条件中的字段建立索引,让查询时间成功降到10s以内
- 显然面试官对我将代码应用到项目中很感兴趣,还问我这个项目是自己独立完成的还是有团队?我说我运动科学专业的,周围没有人懂编程,所以是自己一个人搞的。
- 后来面试官还问我,那当数据量达到了千万级别,比如两千万,三千万怎么办,我说我没有实际操作过,但是看到博客说可以采取分库分表的方式。
- 问到我mysql索引的数据结构的时候,我从从B+树和B树之间的对比,到聚簇索引和非聚簇索引的对比,到Innodb和MyISAM的对比,都讲了一圈
- 面试官问我Java线程安全的类时,我从Collections.synchronizedList() 讲到 CopyOnWriteList,到ConcurrentModificationException
- 后来不知道怎么的一路讲到了AtomicInteger -> UnSafe.getAndInt() -> CAS的思想 -> CAS的缺点 -> ABA问题 -> 用AtomicStampedReference增加版本号进行解决
- 对了面试官还问了我ConcurrentModificationException出现的业务场景,我因为没有接触过实际业务,我就说了如果一个业务的数据用ArrayList存储的时候,多个用户并发修改的话会出现这个异常
总结:
- 我在面试里面也有一些问题答不出来,就比如我脑子其实不太好(就是数理逻辑方面转的很慢,但是艺术天赋很高哈哈哈,以前学了好多年绘画和音乐),以前数学就学的不好,做算法数据结构的题目对我来说很困难
- 但是有一些知识性的东西,问到了,我懂,我就努力的讲得又多又深,把握住这个机会!努力的表现自己,这是很重要的!