美团后端开发工程师实习二面
一、自我介绍
二、项目介绍
三、数据结构
- 数组和链表的区别
- 访问某个元素数组和链表的时间复杂度
- 用数组实现队列的思路
- 用数组实现循环队列的思路
- 该循环队列为空或者为满的条件
四、Java
- 使用的Java版本(java11,追问Epsilon垃圾回收器)
- 判断对象是否是垃圾的算法
- 什么可以作为GC roots
- 新生代中Eden区和Survivor区的默认大小比例
- 四种垃圾收集算法
- G1收集器的基本过程
- 对象如何进入老年代
- java1.7和java 1.8在gc和内存布局方面的不同
- 类加载过程
- 静态代码块在以上那个阶段运行
- 双亲委派机制
- 你知道或做过的项目中破化双亲委派机制的情况
五、计算机网络
- http和tcp所处的层级
- http的请求首部字段
- http的请求方法
- get和post的区别
- get和post所能携带的数据的大小
- 如何查看post请求的数据
- http安全吗
- https
- http 2.0
六、redis
- 五种数据类型
- 用内存保存数据和用redis保存数据的比较
- 两种redis的持久化机制
- 这两种机制落盘的具体过程
七、场景题
- 用redis的zset实现一个延时队列,保证生产者生产的过一段时间才被消费者消费
八、编程题
- 一个m*n的矩阵, 从左上角出发,到右下角,每次只能往下或者往右走,一共用多少中走法(dp,要求优化,直接数学公式)
九、反问
- 面试评价
- 项目单薄(三个项目,唯一的一个Java项目,mysql表只有一个表,spring boot,中间件只用了redis,建议多用一些消息队列、分布式等中间件)
- 灵活应用(不要死背八股文,多想想在实践项目中的如何使用)