秋招投的基本都是Java研发岗,分享一下自己的复习策略

初级策略:看面经和刷题

如果是面试java开发的话,推荐JavaGuide这个仓库,里面覆盖的还比较全面

高级策略:看书和读源码

其实最开始我是拒绝看书的,因为觉得太慢,而且可能记不住,所以我使用了初级策略,但是在面试过程中有几件事情让我发现了秋招仅仅依靠面经是无法拿到大厂offer的

问题如下:

  1. 面试中让我实现HashMap的put函数伪代码,实现ThreadPoolExecutor的offer和take函数伪代码
  2. 大小端是什么样的,如何写代码判断,网络字节序c++和java会存在大小端转换问题么?
  3. 你对jvm看起来很了解,那双亲委派模型知道么?
  4. Spring的启动过程是怎么样的,用到了哪些类?
  5. 遇到大量wait_time状态怎么处理?

分析下上面几个问题,可以得到下面几个结论

  1. 我面的都是java和后台研发的岗位,但是不可避免的会碰到c++的面试官问c++相关的面试问题,尤其是网络编程上
  2. java面试如果仅仅看面经的话,遇到源码和更深入一层的问题基本顾及不到,而恰恰现在大厂的面试官都会去深入一步询问

所以只看面经很容易被识别出来,然后被面试官吊打,我只举了面试过程中遇到的5个较深入的问题,还有更多的问题我没列出来,而且可以认为有几个问题没答出来,就少了几个offer,今年的面试已经很难有问题不会可以给offer的空间了

基于上述结论我推荐几本我看过的书,都是豆瓣评分很高很经典的书籍,分别用于补充不同的部分,所有的书籍均可下载,下载链接,该推荐基于已经学过Java有一定编程能力的同志

Java研发书籍:

推荐阅读顺序:

Java高并发程序设计 -> JDK -> 深入理解Java虚拟机 -> MySQL必知必会 -> Redis开发与运维 -> TCP/IP编程 -> 图解HTTP -> Head First 设计模式 -> Java 8实战 -> 大型网站技术架构 -> 高性能MySQL -> 其他

书籍详情:

建议:学一个工具的时候,需要准备两本书,第一本书是讲如何使用的,第二本书是讲内部原理的,建议先将第一本书看个大概,再去开始做项目,一边做一边巩固,同时开始学习实现原理。