美团买菜(北京)123面面经(已OC)
一面:8.13,1h
- 自我介绍一下
- 聊了算法竞赛相关
- 项目全是自己做的吗?
- 项目有几张表?
- 做项目遇到了什么困难?怎么解决的?
- 又问了一些项目问题,没涉及到具体的技术实现
- 数据库用的什么引擎?(InnoDB)
- 索引最左前缀原则知道吗?(把为啥是最左也解释了一遍)
- TCP/IP协议栈有几层?每一层作用?(四层,在回答作用的时候还是按五层来说了)
- 算法题:二叉树之字形遍历,给25min. (5min想思路,5min写完,debug的时候因为牛客判题平台没办法输出内容,我找不到死循环的地方,所以debug了10分钟...)
- 反问:表现怎么样?(挺好的)部门技术栈?(和你学的差不多)之后有几面?(等HR安排)
二面:8.23,1h
- 简单的自我介绍
- 聊了10min实习的项目
- JMM模型(讲了线程模型以及底层对应的CPU缓存不一致性问题,引出线程不可见,继续讲了volatile如何解决线程可见)
- 内存屏障了解吗?(基于happens-before原则,通过在字节码加指令防止指令重排)还有吗?(不知道了)
- 讲讲G1垃圾回收器(用途,垃圾回收流程,特点)
- synchronized怎么实现可重入锁?(C++里ObjectMonitor里面有个count,线程拿到锁count++,后面又对比讲了ReentrantLock实现可重入锁的方式)
- synchronized新特性了解吗?(锁升级,锁消除,锁粗化,要讲锁升级吗?)不用,讲讲锁粗化(通过举了StringBuffer连续几条append语句会让线程一直获取锁释放锁这个例子解释了锁粗化带来的优化)
- 项目中有用到设计模式吗?(做项目时会考虑6大原则,没很刻意的用到设计模式)
- JDK8下策略模式实现?(举了new Thread(Runnable runnable) 和自定义排序的例子,一个方法想实现多个策略,就将策略搞成一个接口,加上@FunctionalInterface注解表明是函数式接口,balabala...)
- 为什么要有补码?(为了更方便的实现减法运算)
- 为什么引入虚拟内存?(让内存尽可能装更多的热数据,通过LRU和局部性原理进行页面置换)不是主要原因(不知道了... 后来才感觉他应该是想让我说内存非连续分配)
- MySQL为什么主键自增好?(对比了下自增主键,UUID,雪花算法)尝试从索引的角度考虑?(说了聚簇索引底层,自增主键保证顺序,但是我没找到把这两者关联起来的桥梁,因为当时我忽然意识到我不知道UUID做主键时索引是怎么存和查找的)
- 一致性哈希了解吗?(数据分片的策略之一,讲了过程,实现方式,特点)除了分片外还有其他用途吗?(不知道了,求各位小伙伴解答)怎么解决数据倾斜?(加虚拟节点,虚拟节点可以映射到实例节点)
- 布隆过滤器了解吗?(讲了作用,实现原理,误差)
- SpringAOP讲一下(讲了代码实现方式,底层原理,如何生成代理类放到IOC容器,调用代理类增强方法时的责任链模式)
- 从Web容器到SpringMVC整个流程讲一下(通过doDispacher方法里的代码讲整个流程,并说明了里面用适配器模式的好处)
- linux基本命令
- 算法题:实现Java里的parseInt(String s). (7min,考虑了各种边界情况)
- 反问:部门业务,技术栈(电商,技术栈和你学的差不多,再加上一些自研框架,很快可以上手)
HR面:8.27,55min
- 简单自我介绍
- 实习做的项目
- 小组项目里如何管理组员,关系如何协调,如何沟通
- 怎么选公司?(不转语言)Java有哪些公司?为什么选美团?
- 美团业务了解吗?(不太了解)
- 自己学习期间哪个阶段投入产出比高?
- 自己做的项目和实习做的项目区别和感受?
- 和PM沟通起来感觉怎么样?
- 自己的三个优点和三个缺点?
- 兴趣爱好?
- 觉得自己是什么样类型的人?
- 能来实习的时间?
- 反问:我只从技术方面了解美团,我想从其他方面了解美团(HR讲了15min,给我各种科普,推公众号,好像是真的想把所有东西告诉我... 感动)
总的来说美团三轮面试体验都非常好,可能是刚好大部分都问到我会的
#美团校招##面经##美团##Java##校招#