Java学习路线汇总(持续更新)
Java后端从入坑到放弃的学习路线来啦!
点赞收藏支持一下~~
1、JavaSE基础知识
JavaSE 基础知识,是大部分入坑Java的小白们必须经历的一个阶段。这里我建议那些学习时间充裕的大一的学弟们,可以参考一下尚硅谷、黑马程序员的网课,他们的课程课时较长,课程比较细致,此外,最好结合相关书籍去系统性学习;而对于大二、大三(Java基础差,之前没有好好学习,或者非科班出身)的同学们,由于学习时间有限,即将面临实习、校招,这里我建议可以看狂神老师的Java基础课程,课时较短,比较通俗容易理解,能够帮大家快速补上Java基础知识的短板。
推荐
狂神说Java
狂神说Java
狂神说Java


狂神说Java
狂神说Java
狂神说Java
注 :非常建议0基础的小伙伴,可以先看一看狂神老师的JavaSE课程,快速入门一下,然后回头看书复习一遍,可以学得很扎实哦!
2、JavaWeb阶段
2.1 Web 基础——前端知识(HTML、CSS、JavaScript)
作为一个后端开发者来说, 你既要熟练掌握后端技术栈, 同时也要了解前端的一些基本概念. 在这个阶段, 大三及以上的同学如果有求职意向的话, 可以优先学习狂神老师的快速入门课程;而对于刚进入大学的大一、大二学生来说, 如果学习时间允许的话, 建议以硅谷或者传智等机构提供的完整课程为主.
狂神老师快速入门版:
狂神说Java
狂神说Java
狂神说Java
尚硅谷、黑马程序员完整版:
尚硅谷
2.2 Web基础——前端知识(jQuery、Ajax、Vue、UI框架)
对 jQuery 和 AJAX 的掌握程度而言,默认情况下大家只需掌握基本使用即可,并无需深入研习那些详尽而复杂的教程。因为在实际项目中进行开发时会逐渐内化这些技术要点。而对于 Vue 来说,则是我强烈推荐大家投入足够的时间来系统学习它(如果学习资源充足的话)。至于 UI 框架的部分,则是实现功能搬运组件并了解一些网格布局的基本知识等便足够了!
快速入门版:
狂神说Java
狂神说Java
狂神说Java
注
前端相关知识,并不需要每位同学都进行深入掌握;因此不建议深入阅读书籍;可以直接观看视频教程来学习
2.3 Web基础——MySQL数据库
数据库类型繁多,在校学生群体中 MySQL 数据库的学习尤为重要。本章仅限于 MySQL 数据库入门知识的学习,在后续章节中我们将进一步深入探讨 MySQL 的高级应用与技巧
视频教程:
狂神说Java
韩顺平讲MySQL
尚硅谷
狂神主讲Java
- 菜鸟教程:学习SQL基础语法的在线资源
SQL语法入门 - 推荐书籍:
三本权威书籍分别是:- 《高性能MySQL》,一本专注于优化数据库性能的经典著作
- 《深入浅出MySQL》,一本以通俗易懂的方式讲解MySQL技术
- 《MySQL权威指南 第3版》,一本全面系统介绍MySQL高级功能的技术手册



注意事项:在MySQL的初级阶段(基础入门),建议优先选择视频课程作为学习起点,并初步掌握其使用方法;待对数据库操作有更深入需求时再结合书籍进行系统学习!
2.4 Web基础——Servlet、JSP、JDBC
在JavaWeb学习过程中,必须重视掌握Servlet、JDBC以及Tomcat的相关知识。然而,在当前市场环境下(如大多数公司已停止使用),JSP标签语法的应用相对较少。对于想要快速提升技术能力的读者来说,在这里直接推荐狂神老师的课程。同时,在硅谷及黑马程序员等教育机构中也有类似的课程设置。但是一般而言其课程时长较长。因此,在开始深入学习之前建议先完成基础入门后再积累实战经验会更加有效。
注
3、后端框架阶段
在 Java 技术体系中完成框架阶段的学习是一个最为复杂而重要的环节。其中主要基于 SSMP 框架体系(包括 Spring 作为核心组件)、以及相关的 Spring MVC 和 Mybatis 技术。在掌握了 Spring、Spring MVC 和 Mybatis 三大核心组件的基础上,进一步可以通过学习 Spring Boot 等封装层技术来提升对 Spring 框架的应用能力。
学习各个技术栈的重要性不可忽视。但对于正在准备校招求职面试的朋友们来说,请务必切记不要将重点全部放在过度堆砌技术栈上。掌握一些核心的技术栈即可,并且切记不要让时间和精力全部投入到技术堆砌中而不去巩固基础。
我的看法:这一阶段在学习时反复练习使用是非常必要的,并且多做一些项目案例能显著提升你的熟练度!
3.1 SSM框架学习
SSM三大框架学习:
狂神老师的SSM快速入门系列课程
编程不良人SSM快速入门系列课程
尚硅谷全套SSM教程(推荐)
传智播客全套SSM教程
图灵学院全套SSM教程
拓展:
当时间充足时,深入学习一些常见的技术框架对于大家进行项目案例的研究或实践仍然具有重要意义.
狂神说Java
狂神说Java
狂神说Java
狂神说Java
狂神 say Java
3.2 项目实战
SpringBoot项目实战教程(学以致用,巩固沉淀):
- 个人博客项目实战:SpringBoot开发一个小而美的个人博客,该项目需要提前掌握一下 Spring Data JPA,该框架和Mybatis-Plus类似,有兴趣可以单独学习一下。
- SpringBoot聊天App项目实战:SpringBoot+Mybatis+netty 打造高性能前后端分离的聊天应用混合式APP,这个项目案例对前端掌握要求程度略高一些,因为要写很多前端代码去构建APP界面。
- SpringBoot论坛项目实战:Java Springboot视频,spring boot项目实战博客elasticsearch搜索,这个项目案例用到了一些中间件(例如ElasticSearch,大家在下一个学习阶段:中间件阶段需要去学习)。
- Spring Boot管理系统项目实战:SpringBoot项目实战:企业项目管理系统
- 旅游网站项目实战:【编程不良人】基于springboot+vue前后端分离旅游项目实战教程,已完结!
- 办公系统项目实战:SpringBoot+Vue前后端分离项目实战-【前后端项目篇-强烈建议学习】
3.3 推荐书籍
推荐书籍:(这些知识结构,建议大家首先通过在线课程掌握基本运用方法,并在随后的学习中逐步深入阅读以增强理解深度。)
书籍目录:包括了深入探讨的技术核心,《Spring核心技术解析》,系统阐述了MyBatis的核心原理及实践应用,《MyBatis核心原理及实践应用》,通过详细分析了Spring的代码细节,《春详细解分析》,以及一本通俗易懂的指南,《通俗易懂Spring Boot指南》




4、中间件阶段
中间件学习阶段中段期阶段中段期阶段中段期阶段中段期阶段中段期阶段中段期阶段中段期阶段中段期阶段中段期阶段中段期阶段中段期阶段中段期阶段中段期阶段
编程不良人
注 :掌握中间件技术时,在校招学生阶段不需要深入考察其底层原理细节内容,其核心目标在于培养应用能力。建议大家从实践入手,在实际运用过程中逐渐深入理解其工作原理。
学习任何一种技术之前,请先确保能够运用它完成基本工作流程!
5、微服务阶段
在微服务阶段的学习过程中, 大家需要熟悉各种各样的组件集合, 目前较为常见的开源的一站式微服务解决方案包括:Spring Cloud、Spring Cloud Alibaba 和 Dubbo 等等。
当前各大互联网企业的微服务架构均基于各自独立的核心技术体系,在这一学习阶段主要目的是帮助学习者建立基础认知,在初步了解阶段无需投入过多精力即可掌握核心概念。深入探究其核心理念与架构模式的同时需对比传统单一应用开发模式有何独特优势,并探讨各模块之间的通信机制是如何设计与优化的。
编程不良人
编程不良人
项目案例推荐:
尚硅谷
尚硅谷
尚硅谷
6、计算机基础学科知识(重中之重的基础)
在大厂校招面试中对计算机基础学科知识的考察非常普遍 不容置疑地表明 大多数大厂校招面试中有高达90%的概率会涉及计算机基础知识相关问题 包括 Http/1.1 协议以及操作系统中的 I/O 模型等内容
培训机构的大多数课程通常较少投入时间在这些基础学科的教学上。其主要目标是为了帮助学生获得一份程序员的工作技能。与专注于深入教授计算机基础学科相比,在快速掌握核心框架技术方面投入更多精力更为常见。(小企业往往更关注能否立即胜任工作职责,而成都较为注重培养未来发展能力)
在计算机基础学科的学习过程中, 我建议大家可以将重心放在基础课本上, 因为相比于那些较为前沿的应用框架教程, 校内编排的基础课程仍然具有重要的学习价值. 相对于而言, 培训班的教学内容可能会显得略显老派.
计算机网络
- 学习资源推荐:王道计算机考研 课程
- 教材与参考书:
- 《图解HTTP》,《HTTP权威指南》,《TCP-IP详解(分册版)》,《自顶向下计算机网络系统性教材》



操作系统
- 课程推荐:王道软件学院《操作系统的原理与实践》
- 教材推荐:《深入理解计算机系统》(第三版)

计算机组成原理
计组在校招中考察的比较少,所以对于不考研的同学,了解一下即可。
学习资源推荐:王道计算机考研 计算机组成原理
数据结构与算法
尚硅谷
尚硅谷教育

7、深入学习MySQL数据库
MySQL数据库在国内互联网企业中的应用最为广泛 ,尤其是在各大企业的校园招聘面试中 , MySQL技术已成为考生必须掌握的核心知识点 。 除了考核SQL相关知识外 , 试题还会涉及考生对索引原理 、 数据库引擎 、 锁机制 、 孤立级别以及日志管理等方面的深入理解
对于深入学习MySQL数据库知识,《回归课本》是一个非常有效的方式。此外,在这里我也简单给大家分享一些学习资源和工具包的使用方法。需要注意的是,并非所有的视频教程都能全面覆盖所有知识点内容
- 推荐书籍:《 MySQL性能优化秘籍 》、《 直观掌握 MySQL 技术 》、《 全面解析 MySQL 原理与应用 》
- 推荐网课:尚硅谷 高级MySQL课程 视频链接(B站):尚硅谷 MySQL 数据库高级, mysql优化, 数据库优化;尚硅谷 高级MySQL课程 视频链接(B站):2021最新MySQL(面试官最爱):索引、事务、MVCC、锁、调优、分库分表;尚硅谷 高级MySQL课程 视频链接(B站):只用一周彻底搞懂MySQL索引+调优+事务+锁+面试题, 吊打面试官你也可以!



8、深入学习JVM
- 推荐读物:《深入理解Java虚拟机(第3版)》

9、算法(持续刷题)
虽然算法被安置在第9位的位置上,但它的重要性却是至高无上的,建议学习者掌握Java或C++两种语言均可,就开始深入学习数据结构与算法的知识,并持续积累大量算法题目的练习量!
算法素养是需要长期积累的技能,在短期内难以迅速突破。每天在LeetCode平台进行练习,并能获得微乎其微的进步。
下面是一些算法刷题网站:
- AcWing :https://www.acwing.com/
- LeetCode :(覆盖了数百道经典题目,并且累计300道题足以应对大多数校招面试需求)https://leetcode-cn.com/
- 牛客网:https://www.nowcoder.com/exam/oj
注 :刷题没有捷径,只有量变引起质变的一个过程。
10、JDK源码
在深入研究Java源码的过程中, 我不建议大家继续观看视频教程, 因为此时大家已有一定基础. 建议采取的方法包括研读博客文章、深入学习教材, 并自行搭建一个适合学习Java语言的开发环境, 逐步实践积累经验.
对于新接触者来说,在深入理解JDK源码之前,请从较为基础的部分入手。例如,在java.lang 包中学习 Object、String 等基础类及其操作功能,在java.util 包中掌握简单的集合如ArrayList、LinkedList 等以及StringBuffer 等辅助类后再逐步深入研究current包(JUC)中的源码
这里为大家推荐 彤哥源码 ,他的文章讲解得非常细致。
- 推荐书籍:《并发编程之美》、《并发编程实战》

11、深入学习Spring
其核心代码库极为复杂,在编程 interview中声称能够手写完整Spring框架代码的人多为编程技巧展示的小菜鸡级别玩家,在真正掌握完整架构实现细节的前提下具备编写完整Spring框架代码的能力也是遥不可及的理想状态
在高校教师资格考试中,并不需要深入研究《Spring源码深度解析》这本书涉及的15个左右章节的具体内容。考生只需重点关注IOC容器、AOP、Bean加载等几个关键组件的实现原理即可。
- 推荐书籍:《Spring源码深度解析 》yyds的一本书!

12、设计模式
23种典型的设计模式无需深入全面掌握难以完全掌握所有细节重点在于熟练掌握常见的面试设计模式即可
在校园招聘面试中,常见设计模式包括工厂模式、单例模式、代理模式等。
- 学习资源推荐:黑马程序员Java设计模式详解, 涵盖最新资讯23种经典Java设计模式的系统讲解视频课程
- 学习参考:《大话设计模式》
13、深入学习Netty
- 推荐阅读材料:《Netty4核心原理与手写RPC框架实战》、《Netty权威实用指南》
- 教程学习:[黑马课程提供Java网络编程基础与实践应用][全面详尽的Netty深入浅出教程][尚硅谷视频资源B站热门]
- 点击观看:"黑马课程"系统班全程讲解
- 学习路径:"深入浅出"系列课程重点解析
- 视频来源:"尚硅谷视频教程"B站人气课程
- 教程学习:[黑马课程提供Java网络编程基础与实践应用][全面详尽的Netty深入浅出教程][尚硅谷视频资源B站热门]


14、Linux、Docker
Linux、Docker这一学习阶段,知道一些常见命令和一些基本操作即可。
狂神说Java
狂神说Java
狂神说Java
狂神说Java

15、Git(会用即可)
熟练掌握Git的基础功能即可;核心在于实践操作能力;通过命令行界面进行操作同样有效;同时借助IDEA软件提供更为直观的操作界面同样有效;关键在于自己掌握基本操作方法即可。
狂神说Java
16、面试题和八股文
参加Java后端岗位的校招中除了掌握核心技术栈和相关项目经验之外刷八股文面试题同样不可或缺以下为大家提供了几个常见的八股文面试题练习网站希望对备考的朋友有所帮助
16.1 JavaGuide
- JavaGuide:https://snailclimb.gitee.io/javaguide/#/
16.2牛客网
16.3LeetCode
LeetCode:https://leetcode-cn.com/leetbook/
17、开源项目
待更新
