饿了么暑实java研发岗面经(已意向)
一面——5.8
1.项目
- 有没有考虑过数据量大或者存在延迟的时候怎么处理?(Flink和Kafka的容错机制,网络延迟或者节点宕机之后怎么恢复?)
- 如果想要监控整个链路的处理过程,有没有考虑该怎么做?
- 在项目中遇到问题是怎么解决的?
2.Java
- 进程和线程介绍一下(操作系统角度)
- 介绍一下Java的多进程和多线程场景
- 协程了解吗?
- 你刚刚提到了java中用锁来解决一些多并发的问题,那么你了解死锁吗?
- 那怎么来解决或者避免死锁呢?
- Full GC在实际中运用过吗?(没有。。。
- 那么你介绍一下java的gc吧
- 如果程序频繁进行full gc你觉得会出现什么情况呢(STW)
- 出现这种情况的话应该怎么解决呢?(查看运行日志,看看有没有大量创建对象的地方,找到代码修改逻辑)
- 你知道gc的一些监控的工具吗?(不知道。。。
- 微服务了解吗?
3.手撕
一个包含n个元素的整数数组,数组元素都在[0,n-1]范围内,元素无序且可能有不止一个的重复,请你返回任意一个重复的元素,要求时间复杂度不大于O(n),空间复杂度O(1)。
二面——5.10
1.项目
- 讲一下第一个项目你主要做了什么,开发中遇到的最难的问题,你是怎么解决的
- 你说的这个流程你能举一个具体的例子讲讲它是怎么工作的吗
- 你们这个平台你认为哪些场景是不能完成或者说完成是有难度的?
- 第二个项目的主要工作和难题,如何解决?
- 异构数据库的整合其实需要考虑数据一致性延迟还有顺序这些问题,而且流数据处理也存在一些弊端,你是如何设计策略来避开这些弊端的
- 你们这个项目甲方给的吞吐量指标是多少?
2.八股
- 常用的排序算法有哪些(快排、归并——这里其实可以按照场景多提几个
- 讲一下快排的大致步骤
- 如果有一个一个亿的磁盘数据,给你1MB内存去排序,怎么做(多路归并排序:答了个大概
- B+树是怎样的数据结构
- B+树删除一个节点怎么操作
- 进程间通信的方法,从操作系统层面去说
- 给一个图,用什么办法去判断图中有几个环?(没答出来,是深度优先算法DFS
3.反问
- 转正率?没有硬性要求,在***月转正
- 业务?做的toC,业务比较复杂有挑战
- 实习时间和时常没有要求
HR面——5.15
我居然忘得干干净净!!!hr给我打电话才想起来,迟到了10分钟。
一些常规项目问题,还问了offer问题,性格优缺点啥的,项目经历中的事情。
意向邮件——5.16