专栏首页Java程序员的架构之路程序员(工作2年)立flag,面四家,成三家,最后进了蚂蚁.....
原创

程序员(工作2年)立flag,面四家,成三家,最后进了蚂蚁.....

作为一个毕业2年的coder, 最近一直在寻找一个合适的机会能够换一个环境,一是寻找一个更加宽阔的舞台不断的提升自己,二是让自己走出现在的舒适区域,迎接更多的挑战和认识更多的人。当然还有为了获得更加好的一份收入。

这一个月,我投递了4个公司,分别为华为,头条,招银网络科技和蚂蚁金服。头条笔试完就没回信(讲真,作为一个上班族,压根没有刷过算法题,真心不会做,还是自己太菜逼,以后有时间还是定期的了解下算法,算是扩展自己的思路)。比较幸运的是,其余3家都拿到了对应的offer, 后面也暂时不去面试了,等待最终的选择,是留在现在的岗位还是出去看看。

下面记录下面试的经验,一方面用作后期自己回顾知识点,另一方便给正要面试的人一些经验。

华为面试

一面

项目介绍

spring的了解

微服务拆分依据

微服务比较传统应用,单一应用的优点

分布式调度系统的性能,支持最大客户端

分布式调度项目中,client 和 server的通信方式

线程安全的理解

微服务应该监控哪些指标

ai用到了哪些算法

SPRING ioc用到了哪些设计模式

项目架构

单利模式的实现

ps: 单例模式很基础,很重要,里面可能会涉及单例安全,如反序列化可能会破坏单例,然后可以问到类的安全加载等深入知识

哪些地方可能出现oom

需要了解在每个区域出现oom的例子,最好自己能写出来

二面

华为的二面是技术leader面试的。 由于当时没有即时的记录下面试记录,所以有点忘记了。不过技术leader的面试主要是围绕做过的项目,问一些项目的细节。然后会问下自己的意向,工作态度之类的(毕竟华为的加班在业界是比较出名的)

HR面

HR面试的话主要是考擦职业规划,对工作的态度,原有职位的一些情况。 感觉HR还是不错,平易近人,面试的过程比较轻松

总的来说,华为的面试偏向基础。没有太多的问及到底层的架构。

招银科技面试

招商银行也是先笔试,然后是面试。

招商银行的面试可以说是也是4轮,不过比较好的是4个面试官一起,一次性把所有的问题问完,我觉得这样很好,非常高效。 不用每轮面试都介绍一下项目。

项目介绍

项目中缓存的设计

缓存击穿

缓存雪崩

分布式调度系统如何调度?第一轮调度任务没有处理完就第二轮调度时间到来的处理方式?

缓存的数据有哪些?key的设计原则

HashMap数据结构

spring ioc

mysql死锁

然后就是hr询问一些常规的问题,如工作意向,期望薪资之类的。

蚂蚁金服面试

一面

项目介绍

项目中如何保证数据一致性的

存在的问题

jvm 内存

程序计数器的作用

gc 算法, 垃圾收集器

spring事务,事务实现的机制,如何保证事务的

悲观锁,乐观锁

HashMap

红黑树,B+树

数据库死锁,如何防止死锁

二面

二面开始于5道题目,整体感觉还是比较难的。面试的前一天给我发的题目,然后晚上下班后(9点左右)我做了5个小时才完成吧。 第二天面试的时候,主要围绕题目进行展开和发散。

从第一个题目延伸出(转账):

分布式事务的保证。具体的解决方案;

接口的幂等性;

如果向某个账户转账在高并发环境下,设计的接口有什么问题(数据库瓶颈)

如何解决上述的问题

如果账户表很大,具有亿万级别,如何提高查询效率(分库分表)

分库分表具体操作,什么时候分库,什么时候分表,各个使用场景

mysql主从

mysql如何保证主从的数据一致性

数据库的容灾

第二个题目: 抢红包

抢红包的实现方案;(我给出的解决方案是存下抢红包的操作,然后乐观锁更新金额,保证数据的最终一致性)

有没有优化空间;

春晚红包方案(包括限流,网络瞬间抖动,数据一致性)这一点聊了很久。。。

对分布式的看法

开源中间件熟悉哪些?(只是做简单了解)

三面

个人项目介绍

读书时候的经历? 介绍读书时候的项目(这个也太不按照常理出牌了,读书时候发表的论文,基本忘记了呀!!好吧,只能想到啥随便说点吧)

项目一(支付营销系统)的具体介绍, 架构,项目中某个操作的具体流程图,如何压测? 性能优化? 项目中机器的台数,机器扩容标准? 线程池大小?线程数设置标准?

平时用到了哪些集合?hashmap的问题?cpu 100%出现的情况(我从来没遇到过,看过资料其中有一点,让我说说其他情况, 懵逼)?Treeset的实现?

分布式事务,秒杀系统的要求?秒杀系统的设计原则?注意事项?项目中遇到的问题?解决放肆?

项目二(分布式调度系统)的具体情况,架构?中间某些步骤的具体的设计思路。(这个挖的很深,而且面试官确实很厉害,几分钟能够了解你整个项目的大致情况,知道你设计的痛点,然后咨询你如何解决的)

kafka消息可靠性保证?其他中间件有没有了解过?平时阅读什么技术?

正常的问我有什么问题,介绍了下具体的部门信息,然后就通知让等hr电话。

HR面试

HR面试主要是问了过往的经历,包括大学,研究生和所做的项目。然后就是个人的职业规划,就职意向等。

个人总结

通过这4家企业的应聘,发现自己很多的不足。 比如头条注重的算法,解决一个实际的问题还是比较欠缺,另外还有就是自己的思路不够开阔,看待问题不够深入,比如HashMap出现100%CPU的情况以及原因。我觉得对于知识来源,如果能够从自己的项目中获取,那么印象是比较深刻的,比如我曾经遇到过的数据库死锁,堆内存溢出等问题,因此对这块的面试来说,应该算是可以勉强的应付。但是项目中的坑总是有限的,那么就得自己去不断的学习、总结。

Choose

最后根据自己的职业规划,选择了蚂蚁, 下一站,加油。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 你面试了那么多的Java岗位,结果都怎么样了?

    我有朋友经常说,我去试试怎么样?我感觉自己准备的差不多了,我想去投一下美团和滴滴,去试试能不能直接进大公司?

    Java架构技术
  • 阿里,网易游戏,腾讯,smartx的offer面试分享

    从今年的3月14日阿里的电话面试开始,到现在4月16日在西安悦豪酒店进行的腾讯HR面到现在一个多月了,中间先后收到了阿里,网易游戏,腾讯和smartx的offe...

    Java架构技术
  • 程序员:假如你重新面试你现在的工作岗位,通过率有多大?

    对求职者的筛选就是为了提前淘汰一些求职申请者,节省面试工作的时间。通常筛选过程包括:招聘官大体浏览求职申请者的简历(大概用时 10 秒以内),然后进行 30~6...

    Java架构技术
  • 不谈面试题,谈谈面试官喜欢见到的特质!

    过去我做了很多招聘的工作,在这方面积累了不少经验,今天写写我的观点,希望可以帮到大家。

    Java团长
  • 程序员面试字节跳动,被怼了~

    人们都说,这个世界上有两种人注定单身,一种是太优秀的,另一种是太平凡的。 我一听呀?那我这岂不是就不优秀了吗,于是毅然决然和女朋友分了手。 人们都说,互联网...

    Java技术栈
  • 程序员「在知乎装逼被怼」,决定用『面试』证明自己

    https://www.zhihu.com/question/31225105/answer/582508111

    好好学java
  • 跨方向,阿里数据研发九面面经(内推转校招)+书籍推荐自我总结

    说了九次面试感觉我是大神,拿了SP之类,其实并不是,内情就是内推转为了校招,内推五次面试,校招四次面试,在加校招的笔试。本帖子适用于跨专业的人士。sp勿喷,有错...

    牛客网
  • 分析了数千个技术类面试,我们发现成功面试的背后有这样的规律...

    原作者 Aline Lerner 编译 CDA 编译团队 本文为 CDA 数据分析师原创作品,转载需授权 准备技术类面试时需要注意些什么?也许你是刚毕业的大...

    CDA数据分析师
  • 刚收到了Facebook的Offer,我是这样为面试做准备的?

    我刚刚在硅谷的科技公司完成了7次现场面试,我收到了来自Facebook的软件工程师的职位Offer。下面分享一下我是怎么为面试做准备的,以及我在这个过程中学到的...

    前朝楚水
  • 非名校出身的我,是如何拿到Facebook、谷歌、微软、亚马逊和Twitter的Offer的

    作者 达达 原文链接:http://36kr.com/p/5122385.html 写在前面 非名校出身,也没有知名科技公司的工作经验,他竟同时拿到了美国 5...

    CDA数据分析师

扫码关注云+社区

领取腾讯云代金券