面试拼多多 Java 岗被刷了三次,在家闭关刷题66天,卷土重来,终获offer
Posted 守夜人爱吃兔子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试拼多多 Java 岗被刷了三次,在家闭关刷题66天,卷土重来,终获offer相关的知识,希望对你有一定的参考价值。
引言
这是群里一个朋友分享的故事,讲述的是他进入大厂拼多多的经历。(为数不多的,让我真心佩服的人)
他说之前就一直就想进拼多多工作,没有别的理由,就冲着他薪资待遇去的。
故事开始
(第一人称叙述)我是2021届毕业生,大专学历,没有什么背景,当初选择“计算机软件工程”这个专业就是冲着程序员高薪就业的噱头去的,穷学IT富学商。
感觉这是见效最快的一个行业了吧。
找工作那点事
简单介绍一下自己的背景:农村家庭,下面还有一对双胞胎妹妹,她们两是在我初二是时候降生的,让本来就算不上富裕的家庭压力更大了。
但是我很喜欢两个妹妹,只想着自己能快点挣钱,为家庭分担压力。
但就我自身条件来说,并没有什么优势,学历一般, 技术一般,在校期间也没有做什么像样的项目,仅有的时间我都在做家教工作赚钱,社会专业性工作经验也不多。
从春节前那段时间我就开始找实习工作了,看的都是大厂。当时就比较中意拼多多这家,感觉这是一个新起之秀,对学历可能会相对宽松一点吧。
但是我还是被刷了三次,倒不是因为学历,实在是当时面试时自己的能力有很多不足。
下面讲一下我的面试经历。
四战拼多多
第一战
当时放寒假没多久,这次没什么经验,就投了三家,腾讯,百度,拼多多,这基本上算不上“战”吧,因为对方拒绝了我的挑战书……(大写的尴尬,简历都没人捞)
第二战
在网上找了一些大佬写的面试指南看,对照着大佬的简历模板把自己的改了一下,强调了自己能接受加班,学习能力强,勤劳这类品质,又投了网易、拼多多、腾讯新闻、小猿搜题、贝壳找房、快手、微视等。
第一次投简历时投的量少,应该当时是脑袋被门夹了,怕应付不过来。这次本着广撒网的原则,投的有点多,还有很多家记不住了……其他的就不说了吧,只拿到了两三家的意向书,都是没听过的小厂,唯一的一家“大厂”是和腾讯挂了点钩的外包公司,岗位,待遇什么的都不理想。
本文只记录我和拼多多的“爱恨情仇”。
拼多多的这次接到了电话过了二面,下面是我的尴尬二面:
面试官前面问了几个基础问题,感觉我进入状态后,问到了多态(这个我不会啊,我感觉卡了很久)
面试官也看出了我的窘迫,换了hashmap问我 (也不会。。。哭唧唧)
后面断断续续又问了一些其他的,差不多半个小时就结束了,让我回去等通知。
于是一个星期左右,又收到了感谢信。(不过好歹是走了一遭,算是有进步吧)
第三战
上次的面试经历让我深刻的意识到了自己的不足,这次准备的时间稍微长了一点(半个月),多刷了一些题,零零散散找了一堆面经,看了不少。
这次倒是没有发生太大的意外,虽然也有几个答不上的题目,但还是比较幸运的一路苟到了三面。但这一次面试官特别注重源码,我那单薄的知识压根不够看。
这个三面比我前面说的二面还要尴尬,面试官好像也比较忙,不到三十分钟就结束了。
于是一个多星期后,又见到了我的老朋友:感谢信。
最终战
我自己都佩服我自己,居然还有勇气投拼多多(其实主要是,这么多次面试经历下来,还是感觉拼多多的可能性更大吧,而且前面的两次面试也积累了很多经验,我也在一直提升自己。)
这次我考虑的比较多,足足准备了两个多月。
期间我在网上找了很多的Java资料和面试题来刷,也在B站上看了很多大佬分享的视频教程。再去面试的
这次一开始还是蛮紧张的,我不知道自己如果这次再失败还会不会有勇气再投这家公司,不过,面试进行的意外的顺利,虽然也有卡壳的地方,但是,总体上还是比较顺吧。算是功夫不负有心人。
下面分享一下我和拼多多相爱相杀的最终决战!
一面
感觉挺难,而且面试官全程严肃还时不时叹气(弄得我很慌)。。。
1.自我介绍
2.简单介绍项目,怎么做的,为什么要做这个,用到了什么技术。
3.乐观锁、悲观锁、举例讲讲,CAS
4.异步同步、阻塞非阻塞,他们之间有联系吗,说说区别,再从内核的角度说说看(私下查了资料答错了)
5.synchronized,放在各个地方锁的是啥,一个synchronized静态方法,一个普通的synchronized方法,访问静态方法后还能访问普通方法吗,锁的对象是一样的吗。
6.synchronized的底层实现,知道多少说多少,和ReentrantLock的区别
7.Redis单线程为什么这么快(之前美团问过,但是还是有点记不清。。。)
8.最后一道算法题是二叉树方面的做了好久。。。
求一个二叉树里的2个节点的距离,二叉树每个节点的值是唯一的。
当时写的是用递归的先序遍历方式去写,面试官说往这个方向想是对的,就继续卡了挺久,面试官提醒说可以吧走过的路径记录下来,
提醒到这差不多有思路了,就用栈去记录遍历的节点,还是递归先序遍历,当遍历到2个节点中的一个时当前的 栈轨迹就是那个节点的路径(从根节点开始算起的),最后比较这2个栈轨迹就行,类似最近公共祖先,比如找节点4和5的距离如果得出是[1,2,3,4]和[1,2,5] 那他们的距离就是3,及4->3->2->5.
其实还有很多底层的问题记不起来了,一面问的都很底层基础。
二面
一度以为一面能过的概率不大,结果过了还是比较惊喜。
二面面试官特别和善,心情很好,上来就活跃气氛,说我这里天气很好啊,在寝室吗。。。
自我介绍
1.问项目,问具体实现,怎么使用Redis的,myqsql有优化过吗,说说过程,登录流程,拦截器,jwt,2级缓存,部署,docker,git,
2.都是简单的聊,没有深入,这些技术是怎么开始去学的,碰到问题怎么解决的。
3.问了个ConcurrentHashMap
4.问了项目的实际使用情况,一个在商用一个没落地
5.问什么时候可以实习,能实习多久(我还以为结束了。。。)
6.继续问了几个底层:讲讲volatile,JMM,垃圾回收过程,字节码角度解释return i++,mysql的事务原理;
7.为什么喜欢java,怎么开始学的(感觉面试官特喜欢java)
8.算法题,面试官吧函数啥的都码好了,例子也给我写了
9.一个字符串,找是否存在一对AB-BA或者一对BA-AB, 重复的不算
10.直接遍历一遍吧AB和BA出现的数量记录下来,根据他们出现的次数分类讨论
(算法是可行的,复杂度O(n),面试后发现有更好的方法,双指针2端往中间扫描(左边有AB则右边就找BA这种思路))
三面
面试官看着就像大佬
1.问项目,项目里哪里可以优化,第一个项目如果落地了,如何保证高可用,数据库主从,后端服务多开几个,
2.怎么保证前台访问的接口一定能找到后端服务,用一个网关,怎么保证网关高可用,。。。(不清楚了,下来想了下,nginx+keepalive就可以,当时咋就想不起来泥。),
3.引入了Redis,Redis挂了怎么办,系统还能正常运行但是很慢,所有Redis异常都被捕获了,最终都会查询数据库,当时候人工维护。
4.怎么部署https的。https的加密流程。
5.最近在看什么书,推荐下,并发编程的艺术,学到了什么,里面很多思想都和操作系统的联系起来了与学校的纯理论课相比更加形象(实践起来了那种,比如阻塞队列,cas,管程)
6.什么时候可以实习,有什么想问的
7.什么技术栈:dubbo,没学过,面试官说SpringCloud那一套也可以,消息队列是自研的,去学RabbitMQ就行,缓存用的C++,
8.实习有新项目吗,看部门,有的有,有点就维护老项目就行。
尘埃落定
这次等的时间比较长,期间另外的offer拒绝了几个,包括贝壳找房,小鹏汽车问了下,还是可以保底吧。
然后差不多快两个星期了吧,终于收到了offer!
最后我想说的是:功夫不负有心人!不枉我闭关刷了66天的题目(哭了)
另外,需要资料的朋友,下面是我那段时间找到的一些个人觉得还算比较系统,质量还比较高的资料,免费分享给大家,你们可以自己去看一下,看对自己有没有用吧。
最后
长风破浪会有时,直挂云帆济沧海。祝大家拿下心仪公司的offer。
其实感觉自己要学的东西还有很多,希望进去后能跟着大佬们好好学习,有所收获吧。
以上是关于面试拼多多 Java 岗被刷了三次,在家闭关刷题66天,卷土重来,终获offer的主要内容,如果未能解决你的问题,请参考以下文章
2020最新拼多多Java面试题(现场五面),全面涵盖Java高级到高并发
疫情在家“闭关修炼”,读完这些Java技术栈,愿金三银四过五斩六