小伙伴从去年开始,一直叨叨要跳槽,大大小小的公司面试了很多,但总没有拿到一个满意的offer,要么package太低,要么就是面试被虐。
经过前几次的面试失利,终于明白了什么叫基础不牢,地动山摇。面试官随便针对一个知识点深入考察一下,就回答不出来,就这样,还怎么能通过面试?
不过,最近收到了小伙伴的捷报,已拿到阿里的offer,公司足够大,base还可以,虽然是个P6,但还是隐隐感觉到他很满意。
其实,我还是有点疑惑,他之前的基础很一般,咋就突然拿到了阿里的offer。后来没忍住,问他:
“你最近都干啥了,阿里面试都问你什么了?”
结果,这小伙最近半年居然一直在闭关修炼,把一些基础的源码慢慢都啃了一遍。
最基本的HashMap和ConcurrentHashMap
线程池的源码实现
阻塞队列BlockingQueue相关实现
ReentrantLock实现,以及其内部同步器Sync的实现原理
Future的实现原理
AtomicXXX是如何运转的
技术面
项目中的监控:那个监控指标常见的有哪些?
微服务涉及到的技术以及需要注意的问题有哪些?
注册中心你了解了哪些?
consul的可靠性你了解吗?
consul的机制你有没有具体深入过?有没有和其他的注册中心对比过?
项目用Spring比较多,有没有了解Spring的原理?AOP和IOC的原理
SpringBoot除了自动配置,相比传统的Spring有什么其他的区别?
SpringCloud有了解多少?
SpringBean的生命周期
HashMap和hashTable区别?
Object的hashcode方法重写了,equals方法要不要改?
Hashmap线程不安全的出现场景
线上服务CPU很高该怎么做?有哪些措施可以找到问题
JDK中有哪几个线程池?顺带把线程池讲了个遍
SQL优化的常见方法有哪些
SQL索引的顺序,字段的顺序
查看SQL是不是使用了索引?(有什么工具)
TCP和UDP的区别?TCP数据传输过程中怎么做到可靠的?
说下你知道的排序算法吧
查找一个数组的中位数?
技术面试答案以及经验总结成文档的形式
技术面试答案以及经验总结成文档的形式分享给大家(细节比较全面)
听他讲完,感觉把并发包中的相关实现都系统的整理了一遍。
除了JDK中的源码,还挑了一个自己比较感兴趣的中间件redis、SQL,深入的学习了下。
哎,就冲你这个态度,我也想给你offer。
不过,说到源码,有些同学似乎比较反感,总觉得会写代码就成,为什么一定要去了解源码是怎么实现?
看源码的几个好处:
从源码中学习如何性能优化、设计模式等
深入源码,才能了解真相
了解源码,才能更好的解决问题
你懂源码,面试官更懂你
源码怎么读,才比较有效率?
从问题出发,带着问题看源码
面向debug学源码
写写写,做笔记





