四面阿里Java开发岗,拼多多+携程+蚂蚁金服技术面集合

准备过程
先说说我自己的情况,我2016先在蚂蚁实习了将近三个月,然后去了我现在的老东家,三年多工作经验,可以说毕业后就一直老老实实在老东家打怪升级,虽说有蚂蚁的实习经历,但是因为时间太短,还是有点虚的 。所以面试官看到我简历第一个问题绝对是这样的 。
“哇,你在蚂蚁待过,不错啊”,面试官笑嘻嘻地问到 。“是的,还好”,我说 。“为啥才三个月?”,面试官脸色一沉问到 。“哗啦啦解释一通 。。。”,我解释道 。“哦,原来如此,那我们开始面试吧”,面试官一本正经说到 。
尼玛,早知道不写蚂蚁的实习经历了,后面仔细一想,当初写上蚂蚁不就给简历加点料嘛 。
言归正传,准备过程其实很早开始了(当然这不是说我工作时老想着跳槽,因为我明白现在的老东家并不是终点,我还需要不断提升),具体可追溯到从蚂蚁离职的时候,当时出来也面了很多公司,没啥大公司,面了大概5家公司,都拿到offer了 。
工作之余常常会去额外研究自己感兴趣的技术以及工作用到的技术,力求把原理搞明白,并且会自己实践一把 。此外,买了N多书,基本有时间就会去看,补补基础,什么操作系统、数据结构与算法、MySQL、JDK之类的源码,基本都好好温习了(文末会列一下自己看过的书和一些好的资料) 。我深知基础就像“木桶效应”的短板,决定了能装多少水 。
此外,在正式决定看机会之前,我给自己列了一个提纲,主要包括Java要掌握的核心要点,有不懂的就查资料搞懂 。我给自己定位还是Java工程师,所以Java体系是一定要做到心中有数的,很多东西没有常年的积累面试的时候很容易露馅,学习要对得起自己,不要骗人 。
剩下的就是找平台和内推了,除了蚂蚁,头条和拼多多都是找人内推的,感谢蚂蚁面试官对我的欣赏,以后说不定会去蚂蚁咯 。
平台:脉脉、、v2
【四面阿里Java开发岗,拼多多+携程+蚂蚁金服技术面集合】蚂蚁金服(五面)
一面
一面就做了一道算法题,要求两小时内完成,给了长度为N的有重复元素的数组,要求输出第10大的数 。典型的TopK问题,快排算法搞定 。
算法题要注意的是合法性校验、边界条件以及异常的处理 。另外,如果要写测试用例,一定要保证测试覆盖场景尽可能全 。加上平时刷刷算法题,这种考核应该没问题的 。
二面
自我介绍下呗开源项目贡献过代码么?目前该部门做什么,业务简单介绍下,内部有哪些系统,作用和交互过程说下Dubbo踩过哪些坑,分别是怎么解决的?开始进入正题,说下你对线程安全的理解事务有哪些特性?怎么理解原子性?乐观锁和悲观锁的区别?这两种锁在Java和MySQL分别是怎么实现的?为什么不是线程安全的?怎么让变得线程安全?的两者的区别是什么?jdk1.8对做了哪些优化?redis主从机制了解么?怎么实现的?有过GC调优的经历么?有什么想问的么?
三面

四面阿里Java开发岗,拼多多+携程+蚂蚁金服技术面集合

文章插图
简单自我介绍下监控系统怎么做的,分为哪些模块,模块之间怎么交互的?用的什么数据库?使用什么存储引擎,为什么使用?订单表有做拆分么,怎么拆的?水平拆分后查询过程描述下如果落到某个分片的数据很大怎么办?哈希取模会有什么问题么?分库分表后怎么解决读写压力?拆分后主键怎么保证惟一?生成的ID是全局递增唯一么?怎么实现全局递增的唯一ID?Mysql的索引结构说下主键索引和普通索引的区别?你们系统目前的瓶颈在哪里?你打算怎么优化?简要说下你的优化思路有什么想问我么?