蚂蚁金服Java研发工程师的春招面试经历 | 双非大佬教你如何成为offer收割机

作者:JackFrost 链接:https://www.nowcoder.com/discuss/75167?type=0&order=0&pos=40&page=2

一、写在前头

首先,我的面试经历和一下面霸、收割机大佬相比,不是特别丰富,只是略有感悟,分享这几个月来的心路历程,也让后来者可以借鉴一下而已。

博主是双非学校,本科大三,非计算机专业,大家就不要多问了,也不要讨论这个好吧,没意义了。

二、注重心态

明确一点: offer = 心态(30%)+实力(30%)+运气(40%)

楼主也曾经在这场春招心态炸裂过,因为看到很多不公平,看到很多觉得侮辱自己汗水和泪水的东西。不过炸裂的几天后想到,如果这样下去,我会给带节奏的,会造成更大的悲剧,所以不行,必须积极起来。

三、春招的暗坑与技巧:(以大厂为目标)

1) 比拼的东西:

春招因为很多人没实习经验,所以比拼列表:学校>实习>项目>奖项

对于学校牛逼的,你很大优势了,只要把基础打扎实,对项目把握大点就ok的。 对于学校不行的,比如博主,麻烦你去实习一下,大胆出去。 对于学校不行也没实习的,麻烦你把项目仔细研究,每个点研究透彻。 奖项?那只是加分项。前三个都没一个,春招就凉凉了。

2) 投递技巧:

内推,只有内推。千方百计找到,不然凉凉。

官申时,注意整理成一个文档,方便你复制。当然你也可以用插件,比如白熊,不过不完善。

3)笔试准备:

刷题。详情见牛客。

4)面试准备:

1- 你的知识架构 2- 你的表达能力 3- 你对人家公司的了解 4- 你对项目的把握程度 5- 你的延伸思考 6- 你关注的广度

四、大家最想看的面经:(只写已确认结果的)

1)蚂蚁金服(已拿offer)

蚂蚁是楼主第一次的面试记录,所以不习惯,记录的不详尽,很抱歉。 一面:(45分钟26秒) 1- 介绍项目,问一堆项目的 2- tomcat缓存,聊下缓存的整体理解,知道多少种缓存 3- SQL优化思路,联合索引与底层树结构的映像关系,索引结构(B+、B-),为什么用这样的结构 4- spring的bean生命周期(详细)、作用域 5- 乐观悲观锁的设计,如何保证原子性,解决的问题 6- 看过你博客,解释下lucene原理,倒排索引,怎样进行中文分词,基于什么进行分词 7- 你是怎么设计系统缓存的,为什么,什么场景 8- Java基础,说我看过你博客,你就大概说下集合、io、多线程的理解吧。 9- 介绍下部门 二面:(43分钟10秒) 自我介绍 1- 介绍下你在项目中最突出的点。你是怎样设计的,你担当的角色跟设计过程是怎样,遇到的难题是什么,怎么解决? 2- 你所说的SQL优化,具体是指哪些,怎么做到的。我问需要详细讲解执行计划吗?不需要了。 3- 你是看过Java源码或者开源框架的源码的吧?我说:对呀。 面试官:那你看过哪些呢?? 我说:比如Spring、JDK里面的一系列集合类、JUC包下的大部分源码、MyBatis源码等等 哔哩哔哩说了一堆,也问一堆。 4- 那你对自己的学习规划是什么呢??呃,我最近在学习分布式。 面试官:喔?怎么学的,学了些什么? 那就说了一堆分布式的东西 5- 你还有什么问题要问我的吗? 三面:(15分钟35秒) 1- 大学以来的时间规划 2- 项目一个功能,功能点是怎样,为什么封装,性能瓶颈问题是什么,讲下解决方案 那你对你的系统怎么进行升级 3- topN的大数据量题 4- 为什么选阿里不选百度腾讯 才15分钟,以为凉凉 四面 :(40分钟32秒) 1- 自我介绍 2- 你相比于同届,你有什么优势??有什么case证明 3- 你说你喜欢新事物,有什么case证明吗? 4- 项目对你最印象深刻的点?给你什么成长?case 4- 工作地点要求?? 5- 实习时间? 6- 你有什么想问我的?

总结起来:

阿里十分注重你对源码的理解,对你所学东西的理解,对项目的理解。并且如果你有你的博客,你的github是一个十分大的加分项。

2) 拼多多(已拿offer)

一面:(大概一个钟) 1- char和double的字节,以及在内存的分布是怎样 2- 虚拟机JVM内存模型,详细讲下。GC呢?详细点 3- 对象内存布局,然后讲下对象的死亡过程? 4- 对象头,详细讲下 5- syn原理详细,syn内抛异常会怎样,死锁吗?还是释放掉?怎么排查死锁?死锁会怎样?有没有什么更好的替代方案? 6- CPU高?什么情况cpu高?解决什么问题? 7- 详细讲一下集合,HashSet源码,HashMap源码,如果要线程安全需要怎么做? 8- 数据结构学过吧,聊一下?学过什么结构?讲下树和队列?B树呢? 9- 操作系统学过吧,聊一下?讲一下系统内存是怎样的?分段分页虚拟内存? 10- 页面置换算法呢?多少种?有最优的置换算法吗? 11- http和https?http1.0,1.1,2.0,讲下长连接和短连接?https是怎样的?如果我篡改了公钥呢?怎么防止? 12- 讲下请求头细节? 13- 平时是怎样学习的?

二面 :(大概50分钟) 1- 你对后端怎么理解? 2- 你对接入层要思考什么东西?遇到过哪些问题?搭建系统要考量哪些因素? 3- 学过MySQL是吧?讲下MySQL的集群?集群遇到过什么问题?sql的优化? 你目前为止遇到的最大数据量是多少?知道100万时候怎么设计吗?1000万呢?如果像拼多多那样,过几十亿呢? 4- 一致性哈希是干嘛的? 5- 多线程是解决什么问题的?线程池解决什么问题? 6- 学过计算机网络是吧?socket熟悉吗?对它的读写缓冲区有理解吗?怎么的?那滑动窗口是怎样的?为什么这样设计? 拥塞算法知道吗?哪些,分别怎样? 7- 你有遇到过临界区问题吗?有遇到过吗?你在项目遇到这个问题是怎样解决的? 8- 搭建高并发高可用系统需要怎样设计?考虑哪些东西,有多少说多少。 9- 你对缓存有什么理解?缓存是解决什么问题?后端缓存有哪些,分别解决什么问题? 10- 你有什么想问我的?

HR面:(40分钟左右) 1- 你父母做什么的? 2- 为什么从事互联网? 3- 你对加班怎么看? 4- 说了下拼多多的情况 5- 聊下拼多多这款产品 6- 薪资(老实说,很高) 7- 还有啥疑问。

总结:

拼多多比较注重你的架构能力,实战能力,还有一些普通的基础。

3)滴滴出行(已拿offer)

一面: (48分钟36秒,视频面) 聊会人生 自我介绍 1- 聊下HashMap源码,有多详细讲多详细,死锁问题,解释画图。然后synMap和concurrentHashMap,主要的设计原理。 2- 线程池,如何设计的,里面的参数有多少种,里面的工作队列和线程队列是怎样的结构,如果给你,怎样设计线程池? 3- AQS原理,ReentranLock源码,设计原理,整体过程。 4- 继续聊多线程源码,syn原理,然后一个场景设计题 5- 聊一下分布式锁 6- 聊一下架构,接入层架构,服务层架构。聊下技术栈,spring boot,spring cloud、docker 7- 聊下spring源码,知道多少,都聊一下 8- 聊下spring注解,@Autowire,@Resource,以及他们的解析过程 9- 然后项目问题,优化问题 10- 你有什么想问我的?

二面:(32分钟36秒,视频面) 聊下人生,聊多少offer了,怎样实习,实习时间,转正问题。 1- float f = 1.4f;double d = 1.4d; 与 float f = 1.5f;double d = 1.5d; 是否为true,内存是怎样的 2- split的源码,split("a|b|c");得出多少个数组 3- 熟悉maven是吧?我们来聊下maven的源码原理, maven冲突的时候,怎么选择依赖包,我们怎么查,我们遇到两个不一样的版本,我们应该如何去选择,为什么? 4- 怎么认为一个类是线程安全?线程安全的定义是什么?Java有多少个关键字进行同步?为什么这样设计?(聊了一大堆,一堆为什么) 5- 两个线程设计题。记得一个是:t1,t2,t3,让t1,t2执行完才执行t3,原生实现。 6- 写个后缀表达式,为什么要设计后缀表达式,有什么好处?然后写下中缀。 7- 你学过什么课程?然后聊下操作系统,内核、用户之类。 8- get和post,讲下区别,要我模拟出抓包来。

三面:(56分钟32秒,视频面) 1- 说下你印象最深的项目,架构、设计都讲讲。解决什么核心问题,成长了什么东西 2- 你说的SQL优化,怎么优化的,怎么思考的?整体讲下数据库优化 3- 说下最近学了什么东西?我说了分布式、深入Java虚拟机。 讲下JVM优化? 讲下怎么思考分布式的东西,说下学到什么程度了,都详细讲讲。有没有什么实践的?? 多少种RPC框架?都讲下。虚拟机学到多深了??讲下? 4- 详细讲下cookie和session,token,OAuth2.0协议 5- 你是怎么理解spring的,ssh框架呢? 6- 课程和实习怎么抉择 7- 怎么安排你自己的课程学习 有什么想问我的?

HR面: 1- 聊下滴滴的业务 2- 实习时间 3- 什么时候报道 4- 以后的职业发展问题 5- 还有啥offer

总结:

滴滴出行,很难。有的问到灵魂深处。比较注重对一些细节的把控,源码的理解,框架的理解。

4)三七互娱(已拿offer)

一面: 1- 一上来,把所有认识熟用的JUC下的类写出来,讲下使用,然后讲下原生的线程操作 2- 开闭原则,解析工厂方法模式,建造者模式,区别。手撸出来。 3- 讲下JVM的大页模式,JVM内存模型 4- 什么是敏捷开发,防御性编程,并行编程。Team Leader的思考 5- 逃逸分析是什么,作用是什么,用途是什么 6- 反转链表手撸 7- MySQL有多少个参数可调,除了最大连接数。全部列出来,一个个分析。 8- 项目如何分组,性能优化小组应该做哪些 9- 平时怎样学习?

二面: 自我介绍 1- 我看你做过性能优化,比如你怎么分析项目里面的OOM的,内存泄露呢?详细说思路 2- 说下多线程,我们什么时候需要分析线程数,怎么分析,分析什么因素 3- 我们来说下接入层的搭建,认知分析 4- 也来说下,削峰的多种实现,redis?mq? 5- 为什么用mq就能削峰?解决什么问题? 6- 问下项目的系统构建,思考,为什么这样构建? 等HR吧

HR面: 1- 聊下大学生活,有什么亮点 2- case证明的实力。 3- 你的学习安排 4- 聊下你组建的团队,选人 5- 你有什么想问我的?

总结:

三七互娱给我的感觉,注重的是你对团队的思考,你的相关基础,以及你对使用过的东西的思考。

5)京东:(口头offer,准备发)

一面:(32分钟) 自我介绍 1- 抽象方法和类方法的区别,static的抽象方法可以吗? 2- 说下Java的克隆体系 3- 说下集合的体系 4- 说几个算法? 5- 什么时候可以来实习 6- 平时怎么学习的?分布式、虚拟机?学了啥东西,怎么学,具体说下 7- 基于怎样去写博客的? 8- 除了Java还学了什么技术,或者说别的东西? 9- 我们来讲讲redis,你觉得redis是个怎样的东西,除了缓存还有什么 知道它的过期策略吗?详细说下 10- 如果后续有面试,你看什么时候可以?

二面:(50分钟) 自我介绍 1- 聊下项目 涉及OOM、JVM优化、源码问题、数据库优化、多线程等问题 2- 聊下优化过的索引,怎么优化 3- 快排,给一串数组,把具体每次patition写下,最终结果也写 45, 32, 41, 35, 38, 20, 50 4- 聊下三次握手、四次挥手 5- 聊下长连接的问题 6- 看下下面的设计合理不合理 Class C1{ boolean equal(Object b){ return b.toString().equal(this.toString()); } } 顺带聊下equal设计、toString的重写设计 7- 一个整数status, 判断第K个比特位是否为比特1 思路+代码 8- 再聊下http的http basic authentication 8- 你有啥想问我的

HR面:(15分钟) 1- 你有什么问题问我的? 2- 你现在有什么offer 3- 工作地点怎么考虑的 4- 你在学校的社团成长了什么 5- 你父母做什么的,在哪里工作,既然在广东,没考虑过吗??你应该在广东工作啊 6- 你对这个业务感兴趣吗? 7- 你想在公司成长什么东西? 8- 你的优点,你的缺点 9- 周围人对你的评价 10- 你还有什么问题想问我的? 嗯,之后的hr会跟你联系offer下达问题

总结:

比较注重通用的设计基础,基本算法的理解。还有你的广度认知。

6)腾讯:(内推二面挂了)

蜜汁自信地投了wxg 一面:(35分钟) 1- 你是广工的吗?是的 2- 你的专业是非纯计算机专业吗??好吧,是的。 3- 你的项目是怎么开展的,你的协同过滤算法是怎样的?数据模型是怎样?为什么这样设计 4- JVM内存模型,1.6聊到1.8 5- 项目,这个功能怎么设计的,怎么做的,进行了什么优化。索引的缺点? 6- 聊聊并发包你了解多少,都说说 7- 你的项目涉及到任务调度quatz问题,是怎么设计的。有什么经验分享下吗? 8- 嗯,来道基本的动态规划吧,钱币问题。 你有什么想问我的?

二面:(40分钟) 1- 直接聊人生,现在大几,学校在哪之类。 2- 聊项目,为什么这个功能这样做,说下整体功能架构,说下用什么数据库,什么引擎,为什么用这个? 然后,中间怼一怼,功能不难嘛,实习做的功能也不是特别牛,我觉得不如在学校自学。 3- 聊人生吧,你的学校经历 4- 你的课程学习 5- 你怎么安排自己的时间的 6- 你说你清晰自己的道路,怎样个清晰法? 7- 我看你挺活跃的,你是单身吗?为什么 8- 你的比赛中的角色是怎样的? 有什么想问的??

总结:

没完全面完,无法总结评价,据说今年鹅厂收3000人,可能我还不够水平吧。。

原文发布于微信公众号 - 轮子工厂(Programmer-ing)

原文发表时间:2018-04-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏佳爷的后花媛

作为一个Android工程师应该学习哪些

接触Android也有半年的,但是学的却只是皮毛.那么如果想要把Android学好,我们该学习哪些呢,这是我整理的然后做成一个思维导图,供大家参考参考.

973
来自专栏牛客网

美团酒旅四面面经下面贴一下面经

结束了自己的秋招,收到美团的池子短信,一路过来真的感概良多,我属于弱鸡....到目前为止就拿了2个offer,之前面试各种笔试挂,面试挂,投了40家左右吧,本来...

3507
来自专栏Java学习网

为什么优秀的程序员也是优秀的设计师

为什么优秀的程序员也是优秀的设计师 在高科技行业中,我听过很多伟大的开发人员声称对设计一无所知。他们将设计当作是一个神秘的世界,一个编程世界之外的世界。他们觉得...

2275
来自专栏即时通讯技术

微信手机端的本地数据全文检索优化之路

基于本地数据的全文搜索(Full-Text-Search,FTS)在移动应用上扮演着重要的角色。与基于服务端提供的搜索服务不同,移动端受硬件条件限制,尤其在数据...

3622
来自专栏牛客网

【2018秋招iOS面试总结】(渣渣本科生)

本人是非985211学校,非计算机专业,技术一般,基础较差。 最开始秋招的时候,一线互联网基本上都投了,但是很多都被刷了,有的是刷了学校,有的是刷了四级(我四级...

3989
来自专栏我的博客

面试和笔试汇总

最近忙着找工作,也没有更新博客,今天一个朋友让我赶紧把博客更新下,说说最近的面试情况也可以好给他们一个参考,这就整理出来给大家分享~~ 笔试题目公开 get和p...

4546
来自专栏用户2442861的专栏

如何面试Python后端工程师?

http://blog.csdn.net/yueguanghaidao/article/details/49638261

3141
来自专栏C语言及其他语言

学习C语言编译器的选择

很多初学C语言的同学可能遇到的首要问题,就是选择编译器,用什么编程软件? 然而通过了解之后发现有那么多编程软件,什么VC6.0,Dev ,CodeBlocks,...

4037
来自专栏诸葛青云的专栏

如何用C语言画一个“心形”,程序猿眼中的浪漫值得拥有!

你以为C语言就是提供一种编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言吗?你以为C语言就只是以一个标准规格写出的C语言程序可...

6471
来自专栏AI研习社

Github 项目推荐 | Google 大脑神经音频合成器的物理接口 —— Open NSynth Super

Open NSynth Super 是 NSynth 的实验性物理接口,而 NSynth 是 Google 大脑 Megenta 团队开发的一种机器学习算法,用...

1443

扫码关注云+社区

领取腾讯云代金券