美团、滴滴实习生面经(滴滴offer,Java后台开发岗)

笔者是大三本科生,一直以来在考研和参加工作两个想法之间徘徊,最终在今年3月份下定决心参加工作,之后参加了春招,投的全部是java后台开发岗实习生。 
在春招过程中投了不少公司,有京东、头条、网易、美团、滴滴,前三家都挂在了笔试环节,美团顺利通过笔试,参加面试已经是4月底的事了。滴滴是没有经历笔试直接进入了面试环节。先说美团。

美团一面 
4月底收到面试通知去到望京美团大厦进行第一次面试。大概问题如下:(顺序不分前后) 
1.自我介绍(每次面试第一个环节) 
2.项目介绍 
3.项目中redis的作用 
4.数据库隔离级别,不同隔离级别存在的问题(脏读、不可重复读、幻读),出现的原因 
5.悲观锁(Innodb的行锁和MyISAM的表锁)和乐观锁(MVCC多版本并发控制) 
6.单例模式(饿汉、懒汉、双重校验锁及其修正、静态内部类、枚举),线程安全性以及原因 
7.手写生产者消费者模式 
8.递归算法的编程题 
9.Java集合(有点忘了具体内容)

总体来说美团一面答出来90%左右,面试官说他是大数据部门的,因此web方面开发的内容问的比较少,spring、mybatis这类常见框架都没有问

美团二面 
美团二面是电面,问题如下: 
1.自我介绍 
2.项目介绍,每个中间件的使用(redis缓存,rabbitmq异步处理请求) 
3.项目优化思路 
4.HashTable和HashMap的区别,为什么不推荐使用HashTable,有什么可以代替它的?(ConcurrentHashMap) 
5.Mysql存储引擎、事务隔离级别、锁 
6.垃圾收集器 
7.JVM类加载机制 
8.classloader的双亲委派模型 
9….忘了,大概就这么多

二面的过程还是很不错的,感觉问到的问题也都答了出来,但是过了好久没收到通知,后来发短信问才知道是挂了。这里要吐槽美团的面试太拖了,一面和二面拖了好多天。接下来说滴滴,滴滴没有参加笔试,直接进入了面试环节,在投简历过后十多天收到的面试通知,而且滴滴效率很高。

滴滴一面(5月14号) 
1.自我介绍 
2.画出项目的架构图(笔者画了一个超级简单的图,也没啥逻辑,之前没画过) 
3.介绍项目内容,分析优化过程以及为什么要这么做,有更好的方案吗(大家的项目都不一样,我这里就不多说细节了,比如:如何防止用户多次点击某个按钮) 
4.画出springmvc框架大致处理请求的流程并解释 
5.jvm类加载机制 
6.jQuery遍历一个list的方法(回答$,forEach(),问还有其他方案吗,回答的直接for循环,对jQuery了解比较少,只会ajax这一块) 
7.docker相关(学过一点也忘了,直接回答不好意思不知道,面试官说这个挺重要) 
8.数据库隔离级别、存储引擎、mysql默认隔离级别(Repeatable Read) 
9.Mysql索引,面试官写了一条sql语句,问使用到了哪些索引,为什么 
10.Mybaitis和Hibernate区别 
11.集合相关

一面面试官人很不错,虽然略带严肃,但是每次我说错了都会笑着说你再想想。面完之后就去叫二面面试官过来了

滴滴二面 
二面面试官是一个大叔,进来以后全程在笑,我也只能跟着苦笑~~

1.自我介绍 
2.谈谈项目 
3.谈谈对spring boot的使用 
4.Spring Security有哪些重要的Filter(只答上来一个UsernamePasswordAuthenticationFilter,笔者在17年寒假写的security项目,有点忘了),之后又问了几个相关问题,苦笑着说不知道 
5.说说https的握手(说了一半,面试官指导着说完了后半部分) 
6.spring的特性(ioc、aop) 
7.aop如何实现的?有哪几种方式(答出来一个***模式,使用反射)

二面大概记得这些,这个大叔全程在笑,整个面试过程也是比较轻松,笔者10.30开始的一面,二面结束大概12点,面试官就叫我去楼下吃饭,吃完回来进行三面。

滴滴三面 
本来以为滴滴三面就是leader面了,不会问太多技术,结果上来就开始问技术,有点懵逼,快速调整了一下。

1.java的8种基本数据类型(byte、short、char、int、float、long、double、bool) 
2.给出两个Integer,问他们的引用是否相等(考IntegerCache,-128到127的Integer对象会被缓存,因此相等) 
3.StringBuffer和StringBuilder的区别 
4.连续的String拼接JVM是如何完成的(回答在编译器被优化为StringBuild再进行append()) 
5.ArrayList的底层实现 
6.在白板上用数组实现一个简单的ArrayList 
7.白板上实现一个二分查找,可以怎样优化?(这里和面试官进行了讨论)

二面面试官是可爱搞笑型(褒义)的,而三面面试官是一个温柔的大叔,面试开始就告诉我他已经很久没写代码了,在面试过程中对我错误的纠正也一直在说他有点忘记了,回去你自己查一下这一块,让人感觉很舒服。

总体来说一面面试官考基础+框架使用,二面面试官比较偏应用一些,考应用层协议以及一些比较流行的框架,而三面面试官就是纯基础了,面试官讲框架这些会只是锦上添花,不会也没关系,基础最重要,基础是长时间积累的(吐槽:前面面试官都在问框架!)。 
三面结束之后HR告诉我四面面试官不在,让我回去等通知,这时候心里有点忐忑(因为美团被拒那个事),但是回去第二天就收到通知周三(5月16号)去面试。本来以为四面是HR面试,但是后来去了才发现是leader面

滴滴四面(5月16日) 
1.自我介绍 
2.实习日期相关 
3.项目介绍(说我项目经历太少) 
4.未来打算(考研or工作,回答工作) 
5.你觉得你的优点是什么(喜欢敲代码)

四面很短,大概十多分钟就结束了,之后在回学校的公交车上接到HR通知说四次面试的面试官评价都不错,面试通过了,offer审核完毕就会发放。

整体来看基础最重要,这里面包括java基础、集合源码、多线程、算法和数据结构这些,进阶的jvm虚拟机也需要有了解(《JVM虚拟机》这本书的垃圾收集器和类加载机制部分一定要精读几遍)。不管是什么岗位,常用的算法都得熟练,面试过程会考,笔试的编程题部分更会考! 
每次面试开始前的自我介绍不要紧张,这是一个开启两个人交流的铺垫,不然一上来就开始问难免你会紧张。所以说内容不多重要,介绍自己来自哪个大学,什么专业,喜欢哪些技术,说短了也没关系,不要太长就ok,你在说的过程中也是面试官读你简历的过程。笔者每次都只是说十几秒,我来自xx大学xx专业,平常喜欢java后台技术的研究,没了。感觉面试官还没看完简历~哈哈

希望我的面试经历能够给小伙伴们带来一定的帮助。也感谢牛客网让我看到滴滴的实习招聘信息!

#春招##实习#
全部评论
给大佬疯狂打call!
点赞 回复
分享
发布于 2018-05-18 13:57

相关推荐

点赞 138 评论
分享
牛客网
牛客企业服务