《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 cnblogs.com/chopper-poet/p/10805442.html 「踩刀诗人」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

想去阿里的同学可以过来看看了,我经历过一次阿里的面试,怪自己水平有限,止步于第三轮面试。

从深夜的一次电话面试开始说起

具体时间我记不太清了,只记得是在一个工作日跟一位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

还有一些问题记不起来了,总体来说答的不是特别好,对于项目细节没有一个全面的认识,对业务理解也不深入。

总结

面试虽然失败了,但收获还是不小,要想让自己提高一个层次,不能只局限于自己手头的一亩三分地,要对做过的业务有深入的理解,技术方面,不要老是追求一些高大上的技术,像数据结构、网络这种基础知识更是不能停止学习。

文章目录
  1. 1. 从深夜的一次电话面试开始说起
  2. 2. 数据结构是硬伤
  3. 3. 细节决定成败
  4. 4. 总结