作者:JooKS 链接:https://www.nowcoder.com/discuss/726264?source_id=discuss_experience_nctrack&channel=-1 来源:牛客网


一面(11: 00)

  1. 自我介绍,可以出来实习否?

  2. 说一说你自己做的项目吧。。。你没有工作过,项目没什么好问啊。

  3. 讲讲mysql的索引为什么要用B+树

  4. B+树为什么更矮胖?

  5. 给一个联合索引,判断一下会不会走索引。

  6. jvm里面怎么判断垃圾呢?

  7. 时间过得好慢,来做两道题吧。算法题:删除倒数第K个节点。

  8. 反问:聊了聊一些技术栈的事情。

二面(11: 00)

  1. 自我介绍

  2. 项目

  3. shardingsphere proxy,Java agent,字节码注入?

  4. 数据库分布式怎么搞?

  5. 垂直拆分有什么问题?

  6. 问问Java基础吧,ArrayList和LinkedList的区别

  7. HashMap全套

  8. ConcurrentHashMap全套

  9. syncronized全套

  10. jvm内存模型。

  11. 怎么判断哪些是垃圾

  12. 垃圾回收算法?你用过哪些垃圾收集器?

  13. 你用过的机器内存有多大,碰到过哪些问题?

  14. innodb事务的隔离级别

  15. 可重复读解决了什么问题?

  16. 索引调优思路?

  17. 讲一讲Java的线程池

  18. 分布式中间件会吗?比如zookeeper?

  19. 另一个项目

  20. 做道题吧:力扣143. 重排链表

  21. 反问:建议?


1.公司简介

美团,干饭人都不陌生了,如果没有外卖软件,可能很多人连饭都没的吃,这真不是危言耸听。当然美团不只有美团外卖,还有其它业务,比如社区团购。即使很多业务一直处于亏损当中,但美团仍然是一个大体量的互联网公司,福利待遇自是不用说了~


2.面试分析

1)面试时间:中等时长

2)面试内容:中,不算多,但有些回答起来展开很多

3)试题难度:中级

4)试题拓展:扩展广泛

5)核心考点:数据结构+索引+jvm+代理模式+集合+锁+垃圾回收+数据库事务+多线程+算法

6)总结:面试官想问项目,但面试者没有项目经验,作罢,所以接下来问的都是理论内容了,两个算法题也是对编程思维和数据结构的考察。整体内容很充实,虽然没有涉及到任何实战问题,但问的基础内容都是工作当中的难点,一般的CRUD是用不到这些知识点的,而在一些复杂业务处理以及优化上面,就需要在理论知识上的深入做支撑了。即使大概率入职后前期工作以简单写代码为主,后期也是有机会进入核心团队的。


3.提升建议

1)技术提升

    数据结构+数据库是非常经典的面试题组合,这两方面准备多一些,基本都会被问到,毕竟一个是底层支撑,一个是数据支持,哪个软件不需要这两项内容?而且还是关键的两项,所以如果在这两项上有突出表现,一般都会有加分的。数据结构多以算法题考察,所以就多刷题吧,力扣刷个排名出来就厉害了。数据库问题多以索引为主,这块比较难,如果没有数据支持,很难去理解里面的精髓,最好能找一个开源项目跟着感受一下


2)面试准备

    总有面试者在面试的时候因为没有项目而尴尬,这不是技术和能力的问题,这是态度问题。想要有一个拿得出手的项目非常简单,不管是通过搜索引擎、学习网站、还是淘宝咸鱼,都能买到项目教程,即使是千篇一律的电商网站,也不要嗤之以鼻,没那么简单的。最好的方案是,从0开始打磨一款开源软件,从PC端到APP到小程序全部实现,用大学3年的时间去打磨产品,最后一年去做商业化运营,这4年里为此而学习的知识就相当丰富了,相当于自己创业了一次,可选择的岗位就很多了。如果项目数据比较优秀,那就是最好的金字招牌了。


3)面试技巧

面试内容总是那么多,常面热点也总是那些,怎么能突出你比别人厉害呢?凡事多说一个为什么就可以。比如大家都知道索引可以提高数据查询速度,为什么?集合有List、Set、Map各有不同,为什么要有三种集合?知其然知其所以然,不浮于表面,不做背题机器,这就是你跟别人的不同之处。