本人情况:985本科电信专业大三,有项目有实习、无赛事奖项。
过程:11.2Boss投简历——11.7通知面试——11.11面试
整体过程
使用飞书面试,可以用网页。约定16:00,需要开摄像头。面试官很准时,感觉比较年轻。整个面试的时间是1h20min。面试问题非常广泛,但都是比较常见的问题,个别有些有深度的问题稍微有点栽跟头了,面试官非常有耐心,最后笔试题有很多特殊情况我处理了半天,感觉超时了,面试官也是耐心等待(说是限时15min)。
具体问题
- 选择一个项目简单介绍一下?
- 项目架构设计?(单服务项目我借鉴了微服务架构进行模块划分,感觉没太讲好)
- 项目使用到的mysql和es如何保证数据一致性?
- JAVA中多态底层如何实现?(解释了多态,底层原理栽了)
- JAVA中的泛型底层实现原理?(同上)
- JAVA中HashMap的底层数据结构?
- Golang中map的底层数据结构?(真不知道,主语言Java只是实习用过golang)
- TCP为何可靠?(只说了三握手三挥手)
- Redis常用的数据类型?
- zset的底层实现?
- 讲述缓存穿透、缓存击穿、缓存雪崩?
- 如何解决上诉问题?
- redis持久化方式?
- RDB具体实现过程?(栽了,只知道能手动触发)
- 数据库三大范式?
- 索引的底层实现?
- 为什么使用B+树?(回答了个大概,只讲了B+树与b树的区别)
- mysql的隔离级别?
- mysql隔离级别是如何实现的?(只知道用了锁,具体没说出来)
- MySQL中有哪些锁?
- 何为MVCC?(面试时直接忘记了)
- 用过什么mq,如何使用?
- 什么是consumer group?(之前没听说过,临时发挥了一下,还大差不差)
- 什么是脑裂?
算法题:
动态规划的青蛙跳格子的变种,大概是一条数组,数组记录每个格子上石头数量,青蛙从头开始一次跳3-5格,问青蛙跳出整条格子需要最少踩到多少个石头?