Java 后端的知识体系非常庞大,在准备面试技术的时候应该优先抓重点复习。
那具体哪些知识点是重点呢?
先来一张图(后续会详细解读):
-
Java 基础、集合、并发、MySQL、Redis 、Spring、Spring Boot 这些 Java 后端开发必备的知识点(MySQL + Redis >= Java > Spring + Spring Boot)。大厂以及中小厂的面试问的比较多的就是这些知识点。Spring 和 Spring Boot 这俩框架类的知识点相对前面的知识点来说重要性要稍低一些,但一般面试也会问一些,尤其是中小厂。并发知识一般中大厂提问更多也更难,尤其是大厂喜欢深挖底层,很容易把人问倒。计算机基础相关的内容会在下面提到。 -
设计模式 和 Git、Docker、Elasticsearch 等后端开发常用的技术也可能会被提问,但问的频率没有第一条提到的知识点高。还是建议认真准备,时间赶的话,可以稍微少花一些时间。 -
你的项目经历涉及到的知识点是重中之重,有水平的面试官都是会根据你的项目经历来问的。举个例子,你的项目经历使用了 Redis 来做限流,那 Redis 相关的八股文以及限流相关的八股文你就应该多花更多心思来搞懂吃透!你把项目经历上的知识点吃透之后,再把你简历上那些写熟练掌握的技术给吃透,最后再去花时间准备其他知识点,这样效率是最高的! -
针对自身找工作的需求,你又可以适当地调整复习的重点。像小厂和大部分中厂一般问计算机基础比较少一些,有些大厂比如字节比较重视计算机基础尤其是算法。这样的话,假设你的目标是小厂和某些中厂的话,计算机基础相对来说没那么重要的。如果复习时间不够的话,可以暂时先放放计算机基础,腾出时间给其他重要的知识点,尤其是项目经历涉及到的知识点。 -
一般校招的面试不会强制要求你会分布式/微服务、高并发的知识(不排除个别岗位有这方面的硬性要求),所以到底要不要掌握还是要看你个人当前的实际情况。如果你会这方面的知识的话,对面试相对来说还是会更有利一些(想要让项目经历有亮点,还是得会一些性能优化的知识。性能优化的知识这也算是高并发知识的一个小分支了)。如果你的技能介绍或者项目经历涉及到分布式/微服务、高并发的知识,那建议你尽量也要抽时间去认真准备一下,面试中很可能会被问到,尤其是项目经历用到的时候。不过,也还是主要准备写在简历上的那些知识点就好。 -
JVM 相关的知识点,一般是大厂(例如美团、阿里)和一些不错的中厂(例如携程、顺丰、招银网络)才会问到,面试国企、差一点的中厂和小厂就没必要准备了。JVM 面试中比较常问的是 Java 内存区域[1]、JVM 垃圾回收[2]、类加载器和双亲委派模型[3] 以及 JVM 调优和问题排查(我之前分享过一些常见的线上问题案例[4],里面就有 JVM 相关的)。 -
不同的大厂面试侧重点也会不同。比如说你要去阿里这种公司的话,项目和八股文就是重点,阿里笔试一般会有代码题,进入面试后就很少问代码题了,但是对原理性的问题问的比较深,经常会问一些你对技术的思考。再比如说你要面试字节这种公司,那计算机基础,尤其是算法是重点,字节的面试十分注重代码功底,有时候开始面试就会直接甩给你一道代码题,写出来再谈别的。也会问面试八股文,以及项目,不过,相对来说要少很多。建议你看一下这篇文章 为了解开互联网大厂秋招内幕,我把他们全面了一遍,了解一下常见大厂的面试题侧重点。 -
多去找一些面经看看,尤其你目标公司或者类似公司对应岗位的面经。这样可以实现针对性的复习,还能顺便自测一波,检查一下自己的掌握情况。
ps:上面只是根据个人经验得出来的重点,不排除某些小厂和中厂也喜欢问并发、分布式、高并发等进阶知识点。如果目标不是拿个小公司 offer 就满足的话,那还是建议认真去系统准备一下。
看似 Java 后端八股文很多,实际把复习范围一缩小,重要的东西就是那些。考虑到时间问题,你不可能连一些比较冷门的知识点也给准备了。这没必要,主要精力先放在那些重要的知识点即可。
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/90851.html