蚂蚁金服(五面)
一面
一面就做了一道算法题,要求两小时内完成,给了长度为 N 的有重复元素的数组,要求输出第 10 大的数。典型的 TopK 问题,快排算法搞定。
算法题要注意的是合法性校验、边界条件以及异常的处理。另外,如果要写测试用例,一定要保证测试覆盖场景尽可能全。加上平时刷刷算法题,这种考核应该没问题的。
二面
-
自我介绍下呗
-
开源项目贡献过代码么?
-
目前该部门做什么,业务简单介绍下,内部有哪些系统,作用和交互过程说下
-
Dubbo 踩过哪些坑,分别是怎么解决的?
-
开始进入正题,说下你对线程安全的理解
-
事务有哪些特性?
-
怎么理解原子性?
-
乐观锁和悲观锁的区别?
-
这两种锁在 Java 和 MySQL 分别是怎么实现的?
-
HashMap 为什么不是线程安全的?
-
怎么让 HashMap 变得线程安全?
-
Collections 的 synchronize 两者的区别是什么?
-
jdk1.8 对 ConcurrentHashMap 做了哪些优化?
-
redis 主从机制了解么?怎么实现的?
-
有过 GC 调优的经历么?
-
有什么想问的么?
三面
-
简单自我介绍下
-
监控系统怎么做的,分为哪些模块,模块之间怎么交互的?用的什么数据库?
-
使用什么存储引擎,为什么使用 InnnoDB?
-
订单表有做拆分么,怎么拆的?
-
水平拆分后查询过程描述下
-
如果落到某个分片的数据很大怎么办?
-
哈希取模会有什么问题么?
-
分库分表后怎么解决读写压力?
-
拆分后主键怎么保证惟一?
-
Snowflake 生成的 ID 是全局递增唯一么?
-
怎么实现全局递增的唯一 ID?
-
Mysql 的索引结构说下
-
主键索引和普通索引的区别?
-
你们系统目前的瓶颈在哪里?
-
你打算怎么优化?简要说下你的优化思路
-
有什么想问我么?
四面
-
介绍下自己
-
为什么要做逆向?
-
怎么理解微服务?
-
服务治理怎么实现的?
-
这个不是中间件做的事么,为什么你们部门做?
-
说说 Spring 的生命周期吧
-
说说 GC 的过程
-
CMS GC 有什么问题?
-
怎么避免产生浮动垃圾?
-
强制 young gc 会有什么问题?
-
知道 G1 么?
-
回收过程是怎么样的?
-
你提到的 Remember Set 底层是怎么实现的?
-
有什么想问的么?
五面
五面是 HRBP 面的,和我提前预约了时间,主要聊了之前在蚂蚁的实习经历、部门在做的事情、职业发展、福利待遇等。阿里面试官确实是具有一票否决权的,很看重你的价值观是否 match,一般都比较喜欢皮实的候选人。HR 面一定要诚实,不要说谎,只要你说谎 HR 都会去证实,直接 cut 了。
-
之前蚂蚁实习三个月怎么不留下来?
-
实习的时候主管是谁?
-
实习做了哪些事情?
-
你对技术怎么看?平时使用什么技术栈?
-
最近有在研究什么东西么
-
你对 SRE 怎么看
-
对待遇有什么预期么
最后 HR 还对我说目前稳定性保障部挺缺人的,希望我尽快回复。
小结
蚂蚁面试比较重视基础,所以 Java 那些基本功一定要扎实。蚂蚁的工作环境还是挺赞的,因为我面的是稳定性保障部门,还有许多单独的小组,什么三年 1 班,很有青春的感觉。面试官基本水平都比较高,基本都 P7 以上,除了基础还问了不少架构设计方面的问题,收获还是挺大的。
拼多多(三面)
面试前
面完蚂蚁后,早就听闻拼多多这个独角兽,决定也去面一把。首先我在脉脉找了一个拼多多的 HR,加了微信聊了下,发了简历便开始我的拼多多面试之旅。这里要非常感谢拼多多 HR 小姐姐,从面试内推到 offer 确认一直都在帮我,人真的很 nice。
一面
-
为啥蚂蚁只待了三个月?没转正?
-
Java 中的 HashMap、TreeMap 解释下?
-
TreeMap 查询写入的时间复杂度多少?
-
HashMap 多线程有什么问题?
-
CAS 和 synchronize 有什么区别?都用 synchronize 不行么?
-
如果要保证线程安全怎么办?(ConcurrentHashMap)
-
ConcurrentHashMap 怎么实现线程安全的?
-
get 需要加锁么,为什么?
-
volatile 的作用是什么?
-
底层怎么实现的?
-
在多核 CPU 下,可见性怎么保证?
-
聊项目,系统之间是怎么交互的?
-
系统并发多少,怎么优化?
-
给我一张纸,画了一个九方格,都填了数字,给一个 MN 矩阵,从 1 开始逆时针打印这 MN 个数,要求时间复杂度尽可能低
-
可以先说下你的思路(想起来了,说了什么时候要变换方向的条件,向右、向下、向左、向上,依此循环)
-
有什么想问我的?
二面
-
自我介绍下
-
手上还有其他 offer 么?
-
部门组织结构是怎样的?
-
系统有哪些模块,每个模块用了哪些技术,数据怎么流转的?
-
链路追踪的信息是怎么传递的?
-
SpanId 怎么保证唯一性?
-
RpcContext 是在什么维度传递的?
-
Dubbo 的远程调用怎么实现的?
-
Spring 的单例是怎么实现的?
-
为什么要单独实现一个服务治理框架?
-
谁主导的?内部还在使用么?
-
逆向有想过怎么做成通用么?
-
有什么想问的么?
三面
二面老大面完后就直接 HR 面了,主要问了些职业发展、是否有其他 offer、以及入职意向等问题,顺便说了下公司的福利待遇等,都比较常规啦。不过要说的是手上有其他 offer 或者大厂经历会有一定加分。
小结
拼多多的面试流程就简单许多,毕竟是一个成立三年多的公司。面试难度中规中矩,只要基础扎实应该不是问题。但不得不说工作强度很大,开始面试前 HR 就提前和我确认能否接受这样强度的工作,想来的老铁还是要做好准备
读者福利
分享一下我自己收集整理总结的大厂高频面试题目(含答案解析)希望能帮助粉丝朋友们拿到心意的 offer。有需要获取以上面试资料的粉丝朋友们,一键三连(点赞+收藏+关注) 后私信