最近很多读者给我留言问,工作中不涉及高并发、多线程,但是面试中却需要这两个技能怎么办?我结合自己的经验简单说一下我是怎么处理这个地方的。
了解市场和面试
基本上所有的大厂小厂面试都会有高并发、多线程的要求,他真的那么重要么?
其实答案并不是的,国内的大厂的流动人数远远小于需求人数,也就是说大厂每天都需要新鲜的血液进入,那么这些血液不一定就来自于有着高并发、多线程经验的人,看重的是你在自己所处环境是否做到极致
。正如我们的面试要求最后一条:
如果以上均不符合,也没关系,只要你确认自己是个技术人才,对技术有足够的热情,也欢迎投递简历
所以阻碍你面试成功的,不是你不能接触到的技术,而是你当前接触的技术的深度
技术深度?
再说简单一点,你是不是在用 Spring ?那么你有看过他的源码么?它最经典的两条主线 Bean 的加载机制和请求过程都了然于胸吗?如果不是找到自己的问题了吗?
很多朋友经常问,总是听别说说设计模式怎么牛,可是从来没有用过,那么 Spring 中用到的设计模式你研究了吗?
好的,那么我们回到正题,如果正好赶上面试官问你说一下你对 Spring 的理解。如果你看过 Spring 的源码并深入了解过就可以说:Spring 最经典的莫过于他的三个组件,Core、Context 和 Beans,Bean 比作一场演出中的演员的话,那 Context 就是这场演出的舞台背景,而 Core 应该就是演出的道具了,所以我们从 Context 说一下 Spring 的启动做了什么事情,AbstractApplicationContext.refresh
就是最初的入口也是组装 Bean 的地方,它从最经典的模板模式开始……
那么你猜面试结果会怎么样?好,又有人说自己不用 Spring,那么我们就说你有没有仔细看过 volatile 关键字?如果赶上面试官问你说一下你对 volatile 的理解你会怎么回答?这种开放问题没有正确答案,但是我期望听到你的思路是这样的:从指令重排开始,引出内存屏障,解释 volatile 和内存的交互图,他和 CAS 的区别和联系,他在 AQS 和 单例中的应用。好了如果你是这么回答的,你猜面试结果会怎么样?
怎么补充
上面说了一大堆,似乎大道理大家都懂,就是不知道怎么补充?
好好好,回到一句老话。书中自有颜如玉,最简单的办法看书就好了啊。上面我说的两个问题,两本书就可以轻松搞定,当然并不是让你直接啃书,而是通过看书,扩散试的学习和查漏补缺,等你认真看完下面这两本书的时候,上面的所有问题便迎刃而解。《Spring 技术内幕》、《Java 并发编程的艺术》。知识的积累没有捷径,如果想应付自如,只有自己多看书积累了。
对了,如果你有更好的书单推荐,欢迎留言区分享。
遗漏热文?赶紧标星
![e881605d394cbfd290232a85f99ce22c.png](https://img-blog.csdnimg.cn/img_convert/e881605d394cbfd290232a85f99ce22c.png)
1. 阿里社招面试指南
2. 阿里应届生面试指南
3. 探寻线程池是如何工作的
4. 到底线程池应该设置多少合适?
5. 跳槽的必备条件是有一份好的简历
6. 不是所有的 Github 都适合写在简历上
7. 所没有项目经验找工作处处碰壁怎么办
8. 每一个开发人员都应该懂得的 UML 规范
9. 工作环境没机会接触高并发、分布式怎么办?
10. 这算是有史以来讲数据库连接池数最清楚的文章了