2018蚂蚁金服面试总结(Java方向)

2018年8月初得蚂蚁垂青(本人非985/211,蚂蚁真的不是很在乎学历!!!),有了一次社招机会,前后经历三关,随败北但受益匪浅,在此与各位朋友分享经历与心得。

第一关:在线笔试

笔试题内容如下:

说明:
构建一个本地缓存,缓存的对象是用户ID以及部分用户的信息。
当从缓存中获取某个用户数据时,如果发现该用户数据上次更新时间超过30分钟,则需要更新一次该缓存。
 
1.需考虑多线程访问的情况。
2.请不要使用第三方类库实现。
3.可以添加适当日志。
4.可以有适当的伪代码。
 
补充:UserInfo结构
public class UserInfo {
    private String userId;
    private String userName;
    private String cardNo;
    //省略其它信息和getter 和setter
}
 
完成下面的代码
 
//: TODO 可自行定义需要的变量
 
/**
 * 初始化用户信息缓存
 */
public void initUserInfoCache() {
    //: TODO 完成此处的代码
}
 
/**
 * 根据id从缓存中获取用户信息
 */ 
public UserInfo getUserInfoFromCacheById(String id) {
     //: TODO 完成此处的代码
}
 
/**
 * 根据id更新缓存用户信息
 */ 
public void updateUserInfoCache(String id) {
     //: TODO 完成此处的代码
}

题目是让在 考虑多线程的情况下实现一个缓存,题目相对简单(经历过2016的阿里校招在线笔试,简答题难度至今  记(还)忆(是)犹(不)新(会)!!!),时间上要求宽松,24小时内答完即可。

附:我的笔试答案

第二关:一轮电话面试

笔试题提交完毕后,大约2天后,收到一个来自于杭州蚂蚁金服IP的固定电话,不巧当时正在另外一家单位面试,恰逢一面结束,等待二面的空隙里,没办法,接了电话果然是邀请马上进行一轮电面。内心是崩溃的...。和面试官说了暂时不方便,约了半小时后再开始,面试官很爽快的同意了。

一开始依旧是自我介绍,一面提问的问题很多,很杂,涉及面很广,着重于基础,共面了55分钟左右。事后回忆问题如下:

1.jvm内存管理和分配
2.Redis
3.数据库乐观锁
3.currenthashmap的缺点
4.数据库并发
5.dubbo的调用模式,序列化
6.事务的最大级别,跨库?跨表?
7.dubbo上游100万,下游10万,如何处理
8.用户一次请求访问web的详细过程(从浏览器到web服务器经历详细过程)
9.spring的bean的周期
10.详细说下参与的项目的架构
11.hashmap 触发红黑树
12.MySQL支持的跨库事务
...

第三关:二轮电话面试

距离一面过了约一周,二面姗姗来迟。与一面的Java基础相比,二面更偏重于提问 经历的项目的架构,以及使用的框架的底层原理。(突破了会用的范围,理解框架的底层实现原理很重要,但这个很容易忽略!)。内心忐忑的聊了45分钟左右,结束了二面。

事后回忆二面问题如下:

1.说一说你最近参与的印象最深的项目,项目的架构,用到哪些技术
2.说一说spring容器的实现方式
3.说一说redis缓存应用场景
4.说一说eletasic-job与其他job定时任务的区别,以及它的优点是什么
...

总结:蚂蚁还是很看重基础和对框架的原理的理解程度的,说白了,对使用的技术,要知其然也知其所以然。无论是框架还是JavaAPI,底层的研究理解永远不能停。           大道至简,知易行难。

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值