五年开发经验程序员,因对技术金钱的热

个人情况

本人92年5年传统行业Java开发。出于对技术(金钱)的热爱,面试了几家互联网大厂,最终入职京东。下面是我的面经与每家企业踩过的坑总结分享;

美团

美团面试难度较大,基本上问到的所有内容都会深挖原理。所以有些东西自己对于原理不熟尽量不要自己主动提出来,不然就是给自己挖坑。当时不懂这个道理,所以美团一面2个小时还是被pass了(谁让自己扯那么多了),面试体验也不是很好,面试官全程口罩无表情给人压力较大。

一面

自我介绍。自我介绍要简洁抓住要点,最好不要超过3分钟。项目有没有进行mysql调优,如何做的?为什么这么做?mysql事务隔离级别知道吗?mvcc了解吗?mvcc解决了什么问题?redis项目中使用了吗?怎么用的?redis的数据结构你知道的说一下redis常见问题以及解决方案(雪崩、穿透、击穿)跳表、布隆过滤器数据结构说一下。有什么使用场景、好处。redis集群,项目中如何使用的redis内存淘汰策略juc包下用过哪些类,有没有看过源码线程池执行过程线程池淘汰策略AQS原理手写LRU算法个人感受

我面试的美团部门,对于技术的要求还是很高的。

基本上你简历上写到的技能点以及项目上用到的技能点都会深挖原理的,所以千万不要给自己挖坑。本来面试只是问redis基本数据结构,你非要提底层是什么实现的,那么对应的sds、跳表、布隆过滤你都要理解不然就会被自己挖的坑埋了。

另外美团面试官全程口罩根本感觉不出他的表情和情绪,给人的压迫感很大。所以要提前做好心理准备,当然只要技术过硬这些都不是问题。

滴滴

滴滴面试整体体验不错,但是二面和三面难度较大。基本上是一周一面。

一面

自我介绍Object了解吗?有哪些方法,具体说下每个方法的作用。==和equals有什么区别java的几个特性。继承、封装、多态并说说你对他们的理解说下你了解的设计模式,项目中如何使用的。设计模式的8大原则知道吗?开闭原则你如何理解的。hashMap了解吗?底层数据结构是什么,有没有看过源码,扩容机制了解吗?mysql了解吗?索引底层数据结构,为什么是B+树。mysql事务的原子性实现原理说下juc下的lock线程池的参数以及各自的作用AQS了解吗?说一下它的原理。手写一个字符串压缩算法。(就是aaaabbbbcccc变成a4b4c4)二面

自我介绍介绍一个自己熟悉的项目,主要是业务逻辑。项目中的难点,哪些地方做的不好有什么改进的方法。设计一个可以支撑峰值20万QPS,5千写库操作的系统。系统设计(上一个问题)的缺陷在哪里,如何解决。三面

自我介绍介绍一下自己做的最好的一个项目,有哪些亮点。具体说一下细节。数据库与缓存一致性解决方案,不同方案适用场景以及存在的问题。设计一个支撑10万QPS的系统查看当前滴滴司机查看历史订单的系统。手写一个时间复杂度为O(n),空间复杂度为O(1)的将一个单链表转为为一个新的按照奇偶顺序的新的单链表。个人感受

滴滴的面试是他们客服流量分发部门,面试曲线感觉很陡峭。

一面都是基础问题略简单(当然一定要基础过关),算法也不难。吸取美团的教训面试过程并没有主动拓展太多很顺利就二面了。

但是二面和三面的难度陡增,可能和面试职位是D7有关系吧。直接要求设计一个支撑具体QPS、TPS值的系统,甚至直接要设计滴滴(WTF?黑人问号脸),这种问题对于我这种没有互联网经验的老crud来说真的很棘手。只能按照自己平时积累的关于系统设计的所有点和层面进行分析,从服务端nginx、网关层、应用层、redis集群、分库分表(运行之后的扩容)各个点去逐个分析了,虽然通过了面试但是这种面试让我感觉挺痛苦的(当然这也正是我想提高自己的地方,不然还搞啥互联网啊?)。所以滴滴这边更重视你的大局观,系统设计分析能力。

京东

京东面试体验不错,比较注重对于知识的理解。面试官很善于引导你,所以压力没有那么大。

一面

自我介绍hashMap底层数据结构,扩容过程。树化的条件,平时项目怎么使用的。synchronized和lock的区别。各自实现原理说说你对并发中的原子性、可见性、有序性的理解线程有几个状态?线程池各个参数说一下jvm垃圾回收算法有哪些jvm垃圾回收器你知道哪些?jdk8默认垃圾回收器是什么?项目中有没有jvm调优的经验如果让你设计一个jvm内存管理系统,你会怎么做。二面

自我介绍说下你认为做的最好的一个项目的业务逻辑。项目中遇到最大的问题,你是如何解决的。java8新特性了解吗?项目中怎么使用的有没有进行过代码重构,怎么做的以及原因项目中如何进行mysql调优的,说下过程为什么使用索引会加快查询速度项目中怎么使用redis的分布式锁了解吗?什么场景下会用,怎么使用。redis集群有几种,热key问题如何解决。redis持久化方式有几种,原理是什么?手写一个demo可以控制多个线程在同一时间同时执行相同任务。三面

自我介绍spring中bean的生命周期spring事务实现原理,事务不生效的场景有哪些分布式事务了解吗?如何实现,各自优缺点java自带的jvm监控工具使用过吗?可以说一下具体使用案例吗?线上oom如何排查如何在不影响线上系统运行的情况下进行数据库水平扩容,给出一个可行的方案个人感受

京东这边面试相对美团和滴滴来说更加注重你对知识的理解(确定入职之后,面试官亲口和我说的)。所以回答问题要带上自己的理解,除了问题本身都会问你项目中怎么用的问什么。

一面就问我如何设计一个jvm内存管理系统,那么就需要你对jvm内存管理(GC)这一块很熟。也不是说每个人都会这样问,肯定是跟着你的简历内容走。当然你要是自己给自己挖坑那就没办法了。

京东二面三面都很注重你的业务理解能力,不单纯是技术层面。也会让你去表述自己所做系统的业务逻辑,面试官人还是很好的,非常乐意引导你。相对来说给我感觉是最好的。

写在最后

这是本人在冲击大厂时学习路线与狂刷的大厂面试真题,由于文章限制无法全部展现,转发此文+


转载请注明:http://www.aierlanlan.com/rzfs/2652.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了