一,如何学好Java后端呢?
对于学习路线的话,我说⼀条我⽐较推荐的,我相信照着这条学习路线来你的学习效率会⾮常⾼。下⾯
提到的书籍以及相关学习视频都答主已经整理好,公众号JavaGuide后台回复关键“1”即可领取。
1. 掌握 Java 基础知识(可以看《Java 核⼼技术卷1》或者《Head First Java》这两本书在我看
来都是⼊⻔Java的很不错的书籍),当然你也可以边看视频边看书学习(推荐⿊⻢或者尚硅⾕的
视频)。记得多总结!打好基础!把⾃⼰重要的东⻄都记录下来。
2. 掌握多线程的简单实⽤(推荐《Java并发编程之美》或者《实战Java⾼并发程序设计》)。
3. (可选)如果你想进⼊⼤⼚的话,我推荐你在学习完Java基础或者多线程之后,就开始每天抽出
⼀点时间来学习算法和数据结构。为了提⾼⾃⼰的编程能⼒,你也可以坚持刷Leetcode。
4. 学习前端基础(HTML、CSS、JavaScript),当然BootStrap、VUE等等前端框架你也可以了解⼀下。
5. 学习MySQL 的基本使⽤,基本的增删改查,SQL命令,索引、存储过程这些都学⼀下吧!
6. 建议学习J2ee框架之前可以提前花半天时间学习⼀下Maven的使⽤。(到处找Jar包,下载Jar包
是真的麻烦费事,使⽤Maven可以为你省很多事情)
7. 学习Struts2(可不⽤学)、Spring、SpringMVC、Hibernate、Mybatis 等框架的使⽤,(可选)熟
悉 Spring 原理(⼤⼚⾯试必备),然后很有必要学习⼀下SpringBoot。我也遇到很多公司对于
应届⽣直接上⼿SpringBoot,不过我还是推荐你把Spring、SpringMVC好好学⼀下。
8. 学习Linux的基本使⽤(常⻅命令、基本概念)
9. 学习Dubbo、Zookeeper、常⻅的消息队列(⽐如ActiveMq、RabbitMQ)的使⽤.(这些东⻄可以
通过⿊⻢最后⼀个分布式项⽬来学,边看视频,边⾃⼰做,查阅⽹上博客,效果更好)
10. 可以学习⼀下NIO和Netty,这样简历上也可以多点东⻄。
11. (可选),如果想去⼤⼚,JVM 的⼀些知识也是必学的(Java内存区域、虚拟机垃圾算法、虚拟垃
圾收集器、JVM内存管理)推荐《深⼊理解Java虚拟机:JVM⾼级特性与最佳实践(最新第⼆
版》,如果嫌看书麻烦的话,你也可以看我整理的⽂档,在下⾯有链接。
 
二,如何去学呢?我觉得学习每个知识点可以考虑这样去⼊⼿:
1. 官⽹(⼤概率是英⽂,不推荐初学者看)。
2. 书籍(知识更加系统完全,推荐)。
3. 视频(⽐较容易理解,推荐,特别是初学的时候看视频的过程中最好跟着⼀起练,要做笔记!!!慕课⽹和哔哩哔哩上⾯有挺多学习视频可以
看,只直接在上⾯搜索关键词就可以了)。
4. ⽹上博客(解决某⼀知识点的问题的时候可以看看)。
这⾥给各位⼀个建议,看视频的过程中最好跟着⼀起练,要做笔记!!!
最好可以边看视频边找⼀本书籍看,看视频没弄懂的知识点⼀定要尽快解决,如何解决?⾸先百度/Google,通过搜索引擎解决不了的话就找身边的朋友或者认识的⼀些⼈。
 
三, 学会各种框架有必要吗?
⼀定要学会分配⾃⼰时间,要学的东⻄很多,真的很多,搞清楚哪些东⻄是重点,哪些东⻄仅仅了解就
够了。⼀定不要把精⼒都花在了学各种框架上,算法、数据结构还有计算机⽹络真的很重要!
 
另外,学习的过程中有⼀个可以参考的⽂档很重要,⾮常有助于⾃⼰的学习。我当初弄 JavaGuide: h
ttps://github.com/Snailclimb/JavaGuide 的很⼤⼀部分⽬的就是因为这个。客观来说,相⽐于博
客,JavaGuide ⾥⾯的内容因为更多⼈的参与变得更加准确和完善。
 
四,从来到⼤学之后,我的好多阅历⾮常深的⽼师经常就会告诫我们:“ ⼀定要有⼀⻔⾃⼰的特⻓,不管是
技术还好还是其他能⼒ ” 。我觉得这句话真的⾮常有道理!
刚刚也提到了要有⼀⻔特⻓,所以在这⾥再强调⼀点:公司不需要你什么都会,但是在某⼀⽅⾯你⼀定
要有过于常⼈的优点。换⾔之就是我们不需要去掌握每⼀⻔技术(你也没精⼒去掌握这么多技术),⽽
是需要去深⼊研究某⼀⻔技术,对于其他技术我们可以简单了解⼀下。
 
五, 我该如何准备⾯试呢?⾯试的注意事项有哪些呢?
下⾯是我总结的⼀些准备⾯试的Tips以及⾯试必备的注意事项:
1. 准备⼀份⾃⼰的⾃我介绍,⾯试的时候根据⾯试对象适当进⾏修改(突出重点,突出⾃⼰的优势
在哪⾥,切忌流⽔账);
2. 注意随身带上⾃⼰的成绩单和简历复印件; (有的公司在⾯试前都会让你交⼀份成绩单和简历
当做⾯试中的参考。)
3. 如果需要笔试就提前刷⼀些笔试题,⼤部分在线笔试的类型是选择题+编程题,有的还会有简答
题。(平时空闲时间多的可以刷⼀下笔试题⽬(⽜客⽹上有很多),但是不要只刷⾯试题,不动
⼿code,程序员不是为了考试⽽存在的。)另外,注意抓重点,因为题⽬太多了,但是有很多题
⽬⼏乎次次遇到,像这样的题⽬⼀定要搞定。
4. 提前准备技术⾯试。 搞清楚⾃⼰⾯试中可能涉及哪些知识点、那些知识点是重点。⾯试中哪些
问题会被经常问到、⾃⼰改如何回答。(强烈不推荐背题,第⼀:通过背这种⽅式你能记住多
少?能记住多久?第⼆:背题的⽅式的学习很难坚持下去!)
5. ⾯试之前做好定向复习。 也就是专⻔针对你要⾯试的公司来复习。⽐如你在⾯试之前可以在⽹
上找找有没有你要⾯试的公司的⾯经。
6. 准备好⾃⼰的项⽬介绍。 如果有项⽬的话,技术⾯试第⼀步,⾯试官⼀般都是让你⾃⼰介绍⼀
下你的项⽬。你可以从下⾯⼏个⽅向来考虑:①对项⽬整体设计的⼀个感受(⾯试官可能会让你
画系统的架构图;②在这个项⽬中你负责了什么、做了什么、担任了什么⻆⾊;③ 从这个项⽬
中你学会了那些东⻄,使⽤到了那些技术,学会了那些新技术的使⽤;④项⽬描述中,最好可以
体现⾃⼰的综合素质,⽐如你是如何协调项⽬组成员协同开发的或者在遇到某⼀个棘⼿的问题的
时候你是如何解决的⼜或者说你在这个项⽬⽤了什么技术实现了什么功能⽐如:⽤redis做缓存提
⾼访问速度和并发量、使⽤消息队列削峰和降流等等。
7. 提前知道有哪些技术问题常问: 索引、隔离界别、HashMap源码分析、SpringMVC执⾏过程等等问
题我觉得⾯试中实在太常⻅了,好好准备!后⾯的⽂章会我会分类详细介绍到那些问题最常问。
8. 提前熟悉⼀些常问的⾮技术问题: ⾯试的时候有⼀些常⻅的⾮技术问题⽐如“⾯试官问你的优点
是什么,应该如何回答?”、“⾯试官问你的缺点是什么,应该如何回答?”、“如果⾯试官问"你有
什么问题问我吗?"时,你该如何回答”等等,对于这些问题,如何回答⾃⼰⼼⾥要有个数,别⾯试
的时候出了乱⼦。
9. ⾯试之后记得复盘。 ⾯试遭遇失败是很正常的事情,所以善于总结⾃⼰的失败原因才是最重要
的。如果失败,不要灰⼼;如果通过,切勿狂喜。