Java一年面经,说一说我如何咸鱼翻身

尘埃落定,入职携程

找工作已经结束一阵子了,最终入职携程,单月base薪资比一年前涨了65%

携程在我心中算是个中大厂,我是在金融部门工作,办公地点是在国家会议中心,环境很漂亮,窗外就可以看到鸟巢、水立方。

所以呢总体是我是非常满意的,毕竟钱给到位了啊🤩,什么环境啊这都是次要的(我就是这么肤浅/狗头),当然了美好结果是用数倍的努力换来的。

正好借此机会跟大家分享一下自己的面试经验,也重新审视一下自己。我的下一个目标是字节,冲冲冲💪💪💪💪

ps: 前两天还看到了彩虹。
image.png

被裁员,措手不及

先从最近的换工作说起吧,国家政策是一刀刀的砍啊一点都不手软,整个校外培训行业发生巨大转变。对于K12教育公司而言,自救是第一步,自救的第一步就是裁员。裁员程度也是相当大啊,我第二波就被裁了。

还有个好玩的事情:公司刚租的一个一两千个工位的办公地点,从01装修好,我们搬过去用了3个月不到,就退租了!!,你说惨不惨吧。

本来是计划在2个月后主动辞职的,这样以来搞得我有点措手不及。而且赔偿只给了nnn吧我也耗不起,签了合同后两三天,也就是6月最后一天走的人。然后接下来就是复习和面试。

三周备战

我因为没有做足准备,所以给自己排了3周纯复习时间。

第一周 刷题

第一周我刷题,刚开始一下还不能适应,在家学不下去,心烦意乱的,于是我就跑到附近的星巴克刷leetcode。大家学不下去也可以试试去图书馆、咖啡店,去到一个新环境里待着。

leetcode上刷了好多题,尤其是动归用了好多时间,但是面试中并没有用到,做了无用功淦😭。然后还抱着临阵磨枪的态度买了本《labuladong的算法小抄》,花了2天时间看完了(这本书网上风评不一,大家根据自己需要买吧)。

说一下我都做了啥吧,主要是热热手热热自己的思维:

动归、字符串、数组、排序、树

我建议和我情况差不多的同学,着重练一下 排序 以及 相关。

我面的这些公司中,面试题并没有原题,但是只要思维在线基本都能写出来。我觉得非BAT 的话刷题的目的还是放在训练脑子上比较好。

第二周 看 MySQL、Redis、MQ、Dubbo、ZK

MySQL重点看事务索引:1⃣️事务是如何实现的?2⃣️MySQL中的锁以及场景 行锁、间隙锁 3⃣️索引数据结构

Redis这块,推荐看一下极客时间上的《Redis核心技术与实战》、纸质书《Redis设计与实现》:1⃣️Redis每种数据结构都有哪些编码 2⃣️编码底层结构 3⃣️RDBAOF 4⃣️淘汰策略 5⃣️集群、Gossip协议

MQ:1⃣️MQ选型比较、场景 2⃣️如何保证消息不丢失 3⃣️重复消费问题

ZK:1⃣️ZAB协议 2⃣️leader选举 3⃣️脑裂 4⃣️为什么用过半机制

第三周 看源码

这周针对面试中会问到的八股文复习,当然我并没有背它,我花了很长的时间来看源码,答案都在源码里看过之后摸得清清楚楚,面试也更有底气了,强烈推荐读一读源码。

dubbo服务暴露、引入的源码、spring bean创建源码(循环依赖怎么处理的看完一清二楚)、AQSThreadLocl

尤其是AQS源码,看完之后整个并发框架了然于胸。当然读源码这件事,不是读一遍就能全部看懂,要做好打硬仗的准备。像spring bean创建流程我读了不下8次,每次读都花好几个小时。

面试中如何发挥

重点来了哈!!

首先啊,面试中回答要主动学会引导问题
我举一个例子吧:

面试官:MySQL中的事务隔离级别知道吧,你说一说吧

我:(隔离级别我懂啊,倒背如流了都,嗐就这?)RU、RC、RR、Serializable

面试官:嗯行,今天先到这儿吧

这样答的话,随便初学者也能说上来,优势体现不出来。当然面试官真想考察他会继续追问,但不如自己主动把自己的知识说出来,形成一个良性互动。

更好的回答方式是这样的:不但要说出隔离界别,还要说出mysql是怎么实现的这些隔离级别,在不同的隔离级别下会出现这么样的问题,这些问题再分别举例实际场景。

这是我的回答方式,重点来了:

MySQL 依赖 MVCC 实现隔离级别,接着把 MVCC 简单介绍一下。我拿RR说一下吧,先说 RR 级别不会有脏读、可重读问题,再用 MVCC 讲一下为什么不会有这两个问题。继续说但是RR级别下可能会出现幻读,借机把幻读是什么说一下。接着说为什么可能会出现幻读呢,正好把间隙锁引入说一下,同时举例会出现幻读场景和不会出现幻读的场景。

这不就妥了嘛,不但完美回答了事务问题,还引入了锁的概念,以我的经验面试管十有八九会接着问间隙锁,这块复习好,接着不就稳稳的拿分了嘛。

结尾一波三折

刚开始我因为自己社招经验为0,前期就投了多家小公司涨经验

到面试的后期,手里虽然有了8offer,但都是小公司的,我也被一周十几场的面试累摊了,后面的几场面试都是硬着头皮上的。

所以一直到 Moka 给到了理想的薪资,我就不想面了,但还是硬着头皮把剩下的天眼查、转转、boss直聘、携程面完了。

而且都收到了offer,除了boss(面试碰到了一个傻*面试官),现在想想真有点后怕,幸亏当时有点耐心,大家面试的时候一定要有耐心啊!!!

收到 Mokaoffer后,接着去了转转的现场面(离家挺近的,骑电动车15分钟到了),后面通知我过了,于是我立马又接了转转的offer

我当时就特别开心,没想到最后一脚还能往上跳了一下,以为就结束了。最最最搞的是,我刚接完转转offer一个小时后,携程hr给我打电话,说我过了要跟我谈薪资。

虽然携程给的base比转转低了1k,我还是选择去了携程,然后把转转offer拒了。属实当了一波大恶人😅。

就是在末尾阶段,我来了个三级跳,挺搞的。大家一定要耐心啊~~