Java学习路线图分享(含项目+面试提升)最全整理

为大家整理了2022最新的Java学习路线图,从学前准备、学习路线、项目实战、面试提升等四个方面给大家分享一些经验,希望可以给学习Java的小伙伴们一些帮助。

个人学习经验:

我本人是计算机科班出身,现在工作三年之后也仍然没有放弃学习,经常在B站上看一些学习教程来温故知新,看的比较多的就是黑马程序员的课程了,下面整理的也有一些是黑马的课程,大家也可以根据自己的学习整理一些常用的资源库来学习进阶呀。下面进入正题:

目录

一、学习Java之前你要准备这些

二、Java从入门到进阶学习路线

1、基础知识

2、Spring相关知识

3、应用服务学习

4、Springboot框架

5、深入理解JVM

6、前端也需要学习

三、10个开源项目带你走进实战

1、eladmin

2、Flappy Bird

3、Hutool

4、Java小游戏

5、XMall商城

6、Piggy Metrics

7、Cloud-Platform

8、seata

9、Jodd

10、Java

四、面试+工作后的自我提升学什么

Java研发书籍推荐,这些可以先收藏呀:

工作之后怎么提升?


一、学习Java之前你要准备这些

学java之前大家一定不能着急,想想想自己是不是真的对java很感兴趣呢,是不是可以真的可以坚持学习呢?这些都是你学java之前一定要想清楚的东西,如果这些你都想清楚了,那么下面一起来和我进入正题……

学java第一件事情,就是系统学习java基础,这个时候你应该准备好你的学习环境,安装JDK很简单,初学可以不用上来就用IDE工具,可以先用文本编辑器来过渡一下,后期的时候再用IDE也是可以的。

这里给大家一些Java必备学习工具(先收藏):

  • 开发工具:IDEA、Eclipse、VS Code
  • 版本控制工具:Git、SVN
  • Docker、K8s
  • 命令行工具:iterm2(MacOS)
  • 网络测试工具: PostMan、PostWoman
  • 网络抓包工具
  • 持续集成:Jenkins
  • Linux:远程连接Linux,Linux的常用命令(非必备)

对于工具来说是java程序员学习进阶的利器之一,很多工具在后期的项目中都是需要用到的,大家可以提前学习了解一下。

还另外最重要的一件事情就是:不要光看不练习!……对于编程来说理解的唯一方式就是动手,只有这样才能学到技能,学习的过程虽然辛苦,但是一定要坚持,等你能做一些小案例的时候,就会觉得Java其实也非常有意思

二、Java从入门到进阶学习路线

1、基础知识

  • 基本程序结构:基本变量类型、运算符、字符串、流程控制、数组
  • 类与对象:类的定义和使用、静态属性和方法、继承、包管理、枚举、反射
  • 接口和抽象类:接口的定义及实现、抽象类的定义及实现
  • 泛型:泛型类、泛型方法
  • 集合:Set、List、Map、树、排序和查找
  • 异常与调试:内置异常、声明异常、自定义异常、捕获异常、日志
  • 多线程:多线程概念、使用线程、同步
  • Java 8 之后的新特性:Lambda表达式、Stream(map、filter、reduce、集合)
  • Java 网络编程:TCP、UDP
  • Java I/O、NIO

Java学习路线图分享(含项目+面试提升)最全整理_第1张图片

学习基础知识最重要的一点就是让大家对java语言有一个基本了解,另外无论大家今后是面试大厂还是面试小厂,基础知识都是考察的重中之重。

大部分语言的基础知识都是大同小异,包含基本的数据类型、程序结构等等。如果是Java这类面向对象的,那么还得掌握面向对象的知识,面向对象是重中之重,面向对象是重中之重,面向对象是重中之重,重要的事情说三遍。只有掌握面向对象的知识,在后续的开发中才会有更好的成长。

2、Spring相关知识

  • Maven:Maven与包管理、POM文件、生命周期等
  • 单元测试:单元测试的概念,Junit
  • Spring Core:依赖注入与控制反转、Spring概述、xml 装配 bean、Spring容器与生命周期、自动装配、注解装配、切面编程(AOP)
  • HTTP协议:基本概念、方法(GET/POST)、HttpClist 库
  • JSON知识:JSON 概念、JSON 与 HTTP、JSON封装的库(FastJson、jaskson 库)
  • Servlet概念:Servlet 概念、Servlet 生命周期、Filter 和 Listener、Tomcat 与 Servlet 容器
  • Spring MVC概念:配置Spring MVC、路径映射、参数传递、实现REST、权限控制等

Java学习路线图分享(含项目+面试提升)最全整理_第2张图片

spring是java学习的利器,之前在我刚刚接触java的时候,对后端的认知就是Spring、Struts2、Hibernate三驾马车,但后来六演变成了掌握 Spring、Spring MVC、Mybatis,尤其是 Spring 框架。

这部分内容大家可以从新建一个Spring项目开始,一步步循序渐进,一步步慢慢来就可以稳扎稳打。

3、应用服务学习

  • MySQL:关系型数据库概念,数据库的CRUD操作、JDBC API、数据库特性,数据库连接池
  • MyBatis:OR映射概念,配置,映射,基本Java库,和Spring集成
  • 缓存:缓存概念、Redis的使用、缓存雪崩、缓存穿透、缓存击穿
  • NoSQL:NoSQL概念,Mongodb的使用
  • 队列:队列概念,RabbitMQ、Kafka
  • 搜索引擎:Elasticsearch
  • 反向代理:反向代理概念,Nginx的配置和使用

应用服务这一块,涵盖了很多领域,包括持久化、缓存、队列、反向代理等,这些是完善一个程序的重中之重。前面的那几个知识属于基础框架,那么中间件就是给框架里填充一些增强的部分,让程序健壮稳定。

4、Springboot框架

  • 第一个SpringBoot项目、核心配置文件properties(yml、yaml)、集成jsp
  • SpringBoot的web开发:集成MyBtis、SpringBoot 下的SpringMVC、SpringBoot开发RESTFul风格、集成Redis
  • Spring Boot 集成 Dubbo、Spring Boot 非 web 应用程序、SpringBoot 启动Logo修改关闭
  • springboot使用拦截器、Servlet、过滤器Filter、Spring Boot 项目配置字符编码、SpringBoot打包部署、集成Logback日志
  • SpringBoot集成Thymeleaf

Java学习路线图分享(含项目+面试提升)最全整理_第3张图片

SpringBoot的意义在于它继承了Spring的过去优点,ioc,aop,springmvc,而且快速启动服务器,快速开发单个微服务。最大的重要性是:springcloud是一个基于springboot实现的一系列框架的集合,用来提供全局的服务治理方案。所以学它就对了,没什么好说的。

5、深入理解JVM

  • 类的加载机制:什么是类的加载、类的生命周期、类加载器、双亲委派模型
  • jvm内存结构:jvm内存结构都是什么、对象分配规则
  • GC算法 垃圾回收:对象存活判断、GC算法、垃圾回收器
  • GC分析 命令调优:GC日志分析、调优命令、调优工具

只有熟悉JVM,你才能在遇到OutOfMemory等异常时,不会束手无策,不会一脸懵逼得上网找解决办法,最后就算改了几个启动参数解决了问题,也还是云里雾里。

Java学习路线图分享(含项目+面试提升)最全整理_第4张图片

6、前端也需要学习

  • 前端技术:HTML、CSS、JS、JQuery、Bootstrap
  • JavaWeb 核心内容:Servlet、JSP、XML、HTTP、AJAX、过滤器、拦截器等
  • MySQL 和 JDBC

很多公司都是前后端不分离的,而且学习前端的好处也有很多,我们可以自己写一个测试的Demo,前端请求下,比你用postman这类工具效率来的高,可以走一整套流程。

三、10个开源项目带你走进实战

1、eladmin

地址:https://github.com/elunez/eladmin

Java学习路线图分享(含项目+面试提升)最全整理_第5张图片

项目简介: eladmin是一个基于 Spring Boot + Vue的前后端分离的后台管理系统,项目采用分模块开发方式, 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码,支持动态路由,对于初学者还是比较友好的。

2、Flappy Bird

地址:https://github.com/kingyuluk/FlappyBird

Java学习路线图分享(含项目+面试提升)最全整理_第6张图片

通过学习该项目可以学习到:

  • 使用标准库中的一些工具,比如集合、播放音效、加载图片;
  • 如何利用多文件,把不同的逻辑拆分到不同的类中去,并相互之间协作构建起整个游戏的状态;
  • 一些设计模式的应用,比如单例、对象池;

3、Hutool

地址:https://github.com/dromara/hutool

Java学习路线图分享(含项目+面试提升)最全整理_第7张图片

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

Hutool中的工具方法来自每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当。

4、Java小游戏

地址:https://github.com/AlmasB/FXGLGames

Java学习路线图分享(含项目+面试提升)最全整理_第8张图片

项目中已经内置了一些简单游戏的 Demo,通过学习可以让你快速上手,框架还可以将游戏轻松打包到单个可执行文件。

5、XMall商城

地址:https://github.com/Exrick/xmall

Java学习路线图分享(含项目+面试提升)最全整理_第9张图片

项目所用技术栈:SSM、Elasticsearch、Redis、MySQL、ActiveMQ、Shiro、Dubbo、Zookeeper、Vue.js 等

项目简介:XMall是一个基于SOA架构的分布式电商购物商城,并且前后端分离。包括如下几大模块:

  • 后台管理系统:管理商品、订单、类目、商品规格属性、用户、权限、系统统计、系统日志以及前台内容等功能
  • 前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作
  • 会员系统:用户可以在该系统中查询已下的订单、管理订单、我的优惠券等信息
  • 订单系统:提供下单、查询订单、修改订单状态、定时处理订单
  • 搜索系统:提供商品的搜索功能
  • 单点登录系统:为多个系统之间提供用户登录凭证以及查询登录用户的信息

6、Piggy Metrics

地址:https://github.com/sqshq/piggymetrics

Java学习路线图分享(含项目+面试提升)最全整理_第10张图片

项目所用技术栈:Spring Boot、Spring Cloud、Docker等

项目简介:Piggy Metrics是一个基于Spring Boot, Spring Cloud和Docker等技术实现的微服务脚手架,项目包含了:API网关、服务发现、负载均衡、熔断机制、配置中心、监控服务、认证服务等几大微服务项目基本模块,对学习和练手微服务项目是不错的选择。

7、Cloud-Platform

地址:江离/Cloud-Platform

Java学习路线图分享(含项目+面试提升)最全整理_第11张图片

项目所用技术栈:Spring Boot、Spring Cloud全家桶、Vue.js等

项目简介:Cloud-Platform是国内首个基于Spring Cloud的微服务开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关API 管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。

8、seata

地址:https://github.com/seata/seata

Java学习路线图分享(含项目+面试提升)最全整理_第12张图片

项目简介: Seata 是一款阿里巴巴开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。

9、Jodd

地址:https://github.com/oblac/jodd

Java学习路线图分享(含项目+面试提升)最全整理_第13张图片

Jodd是一个非常易用和好上手的开源Java微框架,里面包含了一系列平时经常会用到的一些核心程序库、工具类/方法、实用程序/框架等等。有了它,开发人员做起事来会变得非常简易和优雅,引入jodd就能帮我们快速实现某些功能。

10、Java

地址:https://github.com/TheAlgorithms/Java

Java学习路线图分享(含项目+面试提升)最全整理_第14张图片

项目简介: 这是一个基于Java的数据结构与算法的实现项目。里面包含了几乎常用所有数据结构的实现,以及诸多算法题和LeetCode习题的Java实现。

四、面试+工作后的自我提升学什么

对面试来说无非就是两方面,第一就是面经,第二就是刷题。

看面经除了在网上进行搜索或者面试平台上看分享,真敢还推荐GitHub上面JavaGuide和CS-Notes这两个仓库,里面覆盖了大部分面试内容,整体比较全面。

传送门:

  • JavaGuide: https://github.com/Snailclimb/JavaGuide
  • CS-Notes: https://github.com/CyC2018/CS-Notes

刷题网站推荐的话重要就是牛客网以及LeetCode,还有我最近发现的一个趣IT也不错。

趣IT网址:https://www.funit.cn/

涵盖有一些大厂真题以及阶段性能力测试,这些大家都可以自己去刷。

Java学习路线图分享(含项目+面试提升)最全整理_第15张图片

对于大厂来说,除了上面这些还建议大家看书+读源码,因为Java面试如果仅仅看面经的话,遇到源码和更深入一层的问题基本顾及不到,而恰恰现在大厂的面试官都会去深入一步询问。

Java研发书籍推荐,这些可以先收藏呀:

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

书籍详情:

  • JDK的collection,map,concurrent包必看
  • Java高并发程序设计:必看,面试中高并发几乎是必问的点,如果没有系统的看过高并发程序如何写,类库如何用很容易被问晕
  • 深入理解Java虚拟机:必看,经典中的经典,所有jvm和jmm相关的问题和知识都在这里有答案
  • MySQL必知必会:必看,内容为sql语句的基本使用,建议配合牛客网的数据库实战编程[6]来复习
  • Redis开发与运维:必看,主要内容为Redis的使用和特点,讲解了Redis都有哪些可用的内容
  • TCP/IP编程:必看,书中虽然都是C++,但基本覆盖了网络编程能遇到的问题,包括IO使用,网络字节序等
  • 图解HTTP:必看,书很短一天就能看完,能很快的掌握http协议中的字段和含义,面试中也经常被问到
  • 大型网站技术架构:必看,面试中常常会遇到秒杀系统设计一类的问题,这时候需要有对分布式系统演化的理解
  • Head First 设计模式:选看,讲Java设计模式的,其中单例模式的四种实现被问得最多
  • Java 8实战:选看,非常有价值的书籍,Java 8的新特性使得Java函数式编程成为了可能
  • 高性能MySQL:选看,内容为mysql的实现原理和性能优化,在面试中经常会被问到,读这本书会有更深刻的理解
  • 其他:还有很多进阶的书籍,比如Spring揭秘、Netty权威指南、Redis设计与实现等,这些都可以后续再看

工作之后怎么提升?

【JDK8-15新特性】

  • JavaJDK新特性详解系列教程,持续更新
  • java基础强化教程,JDK 13新特性全面解读
  • java教程JDK14新特性全面剖析,jdk新版本解读
  • 黑马程序员java教程JDK15新特性全方位解读

【编程强化】

  • 黑马程序员Java设计模式详解,全网最全23种Java设计模式(图解+框架源码分析+实战)
  • 黑马程序员Java数据结构与java算法,全网资料最全数据结构+算法教程,154张java数据结构图
  • 黑马程序员JVM完整教程,全网超高评价,全程干货不拖沓
  • 黑马程序员全面深入学习Java并发编程,JUC并发编程全套教程
  • 黑马程序员Netty全套教程,全网最全Netty深入浅出教程,Java网络编程的王者

【数据库强化】

  • 黑马程序员MySQL全套教程,超详细的MySQL数据库优化,MySQL面试热点必考问题
  • 黑马程序员Oracle数据库精讲,从0到1学会Oracle数据库

【热门技术扩展】

  • java进阶教程数据层全栈方案Spring Data高级应用
  • 黑马程序员java日志框架教程,全面深入学习多种java日志框架
  • 黑马程序员Lucene全文检索技术,从底层到实战应用Lucene
  • 黑马程序员Solr从基础到项目实战,Java高薪必备Solr从基础到实战
  • 黑马程序员Java高级工程师必备技术栈-由浅入深掌握Shiro权限框架
  • 黑马程序员Elastic-Job分布式任务调度深入浅出
  • 黑马程序员分布式事务控制解决方案从入门到应用,微服务分布式系统开发教程
  • java基础进阶教程3天深入学习分布式事务应用及解决方案
  • 黑马程序员Nginx教程,Java进阶从0到1学会Nginx分布式框架
  • 黑马程序员Java报表数据可视化教程,从基础到实战(热门HighCharts,Echarts全涵盖)
  • 黑马程序员Java进阶VelocityTools全套教程,带你快速进阶模板引擎的深度使用
  • 黑马程序员java教程最新工作流引擎Activiti7基础到进阶,Activiti和Spring框架、SpringBoot整合
  • java基础教程全面讲解百度地图的原理与案例应用
  • java基础进阶-企业开发首选的安全框架Spring Security深入浅出
  • 黑马程序员Java进阶教程快速入门Spring Security OAuth2.0认证授权
  • 黑马程序员Java在线支付教程,全面掌握Java(微信支付+支付宝支付等)常用支付方式
  • 黑马程序员Java教程自动化部署Jenkins从环境配置到项目开发
上述视频来源: https://www.bilibili.com/read/cv9965357?from=articleDetail

你可能感兴趣的:(java,开发语言,spring,boot,spring,cloud,servlet)