关键词:面试
前言
想去阿里的同学可以过来看看了,我经历过一次阿里的面试,怪自己水平有限,止步于第三轮面试。
从深夜的一次电话面试开始说起
具体时间我记不太清了,只记得是在一个工作日跟一位HR约了晚上电话面试。本打算早点忙完回家做准备的,结果正好赶上那天加班,所以下班稍微晚了一点,心里暗暗窃喜,幸好今天没打电话过来,要不然还没时间接电话。悲剧的是在离家还有几分钟路程的时候电话打过来了,没办法就硬着头皮接了。说来也傻,其实当时跟人说明情况,让人家等个几分钟应该也是可以理解的吧。就这样,我大冬天的找了一个风小的墙角猫在那里开始我的第一轮电话面试,给我冻的呀,不过幸好结果是好的,也不枉我冻一场。HR问的都是java基础相关的问题,不是很难,我应该答了80%左右,下面是一面的题目,我根据记忆贴一下,大家查漏补缺吧。
- String,StringBuilder,StringBuffer的区别
- ArrayList,LinkedList的区别和使用场景
- HashMap原理,怎么解决hash碰撞的,HashMap在多线程情况下会有什么问题
- ConcurrentHashmap使用过吗
- jdk1.8对并发方面的优化你知道吗
- CAS知道是什么吗
- MySql存储引擎有哪些,区别
- 怎么定位慢查询
- explain输出结果有哪些
- 线程池底层原理,调度丢弃策略有哪些 ,线程池有哪些参数
- jvm垃圾收集算法说说,GC roots有哪些
数据结构是硬伤
二面依然是电话面试,约的一点,不过一直等到了一点四十才打电话过来,先是一个简短的自我介绍,然后就抛了几个数据结构相关的题目给我做,这块一直是自己的短板,被虐的体无完肤。这里多说一句,面试的这哥们态度相当不错,不是一棒子把你打死,你答不出来也会慢慢的引导你。看我前几个题答的不好,最后又回到了java相关的问题上。
- 给定一个集合,求集合的子集
- 求两个树的共同子树
- 如何判断一个树是另一个树的子树
- 自旋锁是什么,用过吗
- 如果希望既有顺序,又可以快速访问,你会选择什么数据结构
- TreeMap的原理说一下
细节决定成败
三面是二面后的第二天,接到电话以后我还挺意外的,二面答的不好,居然还有第三次机会。三面主要会问一些项目细节相关的东西,也会和你聊业务,会穿插的和你聊一些技术细节,对自己使用过的框架、中间件等一定不要只是停留在使用层面,还是要了解一些原理的。
- 请你简单说说你们公司现在的业务,会问你一些你的看法,是否看好等等
- 是否用过消息中间件,你们的用途是什么,你知道消费者组的概念吗
- 说说你用过的RPC框架,假如让你实现RPC框架的序列化部分你会怎么做
- 使用java实现tps统计,聊聊你的思路
- 说说LinkedHashMap
还有一些问题记不起来了,总体来说答的不是特别好,对于项目细节没有一个全面的认识,对业务理解也不深入。
总结
面试虽然失败了,但收获还是不小,要想让自己提高一个层次,不能只局限于自己手头的一亩三分地,要对做过的业务有深入的理解,技术方面,不要老是追求一些高大上的技术,像数据结构、网络这种基础知识更是不能停止学习。