美团暑期实习一面面经(2021/3/29)
按顺序回忆问题
- 自我介绍
- 是考过研的, 对计算机网络有了解吗? 讲讲TCP协议, 讲讲TCP的三次握手. 为什么要三次握手, 两次可以吗?
- 讲讲数据链路层在网络中的作用, 比如物理层就是代表电信号传播, 那数据链路层是干嘛的呢? (这题我感觉没有太答上来, 我回答了数据链路层的MAC协议, 面试官说这个是从协议上看的. 于是我又从数据链路层对应的是交换机这一点上继续作答了)
- 对操作系统有了解吗? 能讲讲进程与线程的区别吗?
- 线程有调度算法, 进程也有调度算法, 能讲讲你知道哪些进程调度算法吗? (LRU(不太算); 先进的先运行; 按优先级顺序运行; 按占用时间最少优先)(这个答得不太好)
- 知道死锁吗? 能讲讲编码中怎么搞出来一个死锁吗? 如何预防死锁? (这里我答得银行家算法以及不同线程按同样顺序获取资源可以预防死锁)
- 算法题: 有效括号 手撕快排
- Java里,
equals()
方法和==
的区别? 都是怎么用的? - 为什么说重写了
equals()
方法就得重写hashCode()
方法呢? - Java里, 你用过那些集合?
- 知道那些并发的关键字或者类?
- 之前你提到了AQS, 能再讲讲你之前说的那些类里面, 有哪些是使用了AQS实现的?
- 用线程的时候, 肯定是用线程池来获得线程的. 讲讲线程池的参数. 每个参数都是什么意思?
- Spring两个重要的特性是什么(AOP, IOC), 都干嘛的?
- Spring中, 你用过
@Controller
,@Service
,@Component
注解吗? 他们的作用是什么? (作用一样) 为什么要单独弄出来这么多个作用一样的? @Autowired
和@Inject
住解都是用来干嘛的, 有什么区别?- 你的项目里用的数据库是MySQL吗? 有多少条数据(10条不到)? 那你有没有用到索引?(innodb默认给主键加上了聚簇索引)
- 看来你知道索引的, 能讲讲索引是以什么数据结构组织的吗? (b+树, 而且索引单独以一个文件保存)
反问
1.Q: 感觉自己操作系统掌握的不是好, 如果要加强, 怎么学习?
2. Q: 部门主要是干什么的? 技术栈是什么呢?
总结
- 面试官很友善, 有些地方卡壳了都会有指引. 面试感觉很好.