跳至主要內容

Java学习基础路线

三思原创2024年2月23日大约 36 分钟javajava学习路线入门指南

本文介绍了Java学习基础路线,包括准备工作、Java入门阶段等。提供了环境搭建和学习资料链接,并建议使用在线编译工具和笔记工具。旨在帮助读者快速入门Java语言,掌握基础知识和基础语法,逐步理解编程特性。

image
image

Java学习基础路线

图片

长文警告!!!预计阅读耗时20分钟,你忍一下,但相信看完你不会后悔的;如果没有充足的时间,可以考虑先收藏着;公众号【一行Java】后台回复【Java路线】,即可获取完整的学习路线思维导图

最近和各位小伙伴儿私下聊的比较多,各个阶段的朋友都有;因为大环境的内卷,导致大家在求学、求职、提升自己的各个方面都多多少少有些迷茫焦虑;

这些其实是一个非常普遍且正常的现象,会焦虑的人,往往都是对自己要求比较严苛的好同志;如果躺平了,何来焦虑可言!

鉴于其中关于学习方向,学习路线的问题,其实网络如此发达的今天,到处都是免费的学习资料,而且这些资料足够你去学习一门编程语言,但因为多,杂,乱的原因,导致很多人不知道该如何选择、如何去学;于是我熬了几周的长夜,整理了一份*完整的Java后端学习路线图*,在这里分享给大家,无论你是自学,还是自我提升,总有一个阶段是适合你的;希望能帮到阅读这份资料的每一个人,哪怕是一点点,那这段时间的辛苦就没有白费;

整个学习资料包含了从入门到大神的7个大的阶段,每个阶段都细分了详细的类目,知识点以及学习资料、工具等;如果从头开始;学习周期至少得计划一整年的时间,大家可以根据自己当前所处的阶段,做一些学习路线的调整;

图片

一站式Java学习路线 公众号【一行Java】

准备工作

前期准备

图片
准备工作(2天)

在线编译工具

如果是刚刚接触Java,对环境搭建会比较陌生;现在已经很多在线的编译环境,通过网页,就可以编译运行Java代码,这对新手来说,是非常友好的一种方式;可以通过下面的网页工具编写自己的第一个”hello word“吧!

https://c.runoob.com/compile/10

⭐笔记工具

学习的过程中,记笔记是必不可少的,好记性不如烂笔头,学习的过程中要勤记笔记,学完每一个阶段,都要对自己所学的内容进行总结,人的思维是有跳跃性的,只有能写出来,能表达出来,才能说是真正的理解了;所以在开始学习之前找一款适合自己的笔记工具

环境搭建

⭐学习资料、免费站点

⭐阶段一:Java入门(15天)

当有了前期的这些准备工作,接下来就正式开始Java的学习了;

本阶段的目的很简单,就是快速入门,对Java有一个简单的认识,了解基础知识基础语法基本的概念;因为是基础,所以,务必得多看多想、多思考、多记,逐步了解Java语言的特性,并找到编程的感觉。

如果在这段过程中遇到有特别不理解的东西,不用过分去纠结,比如多线程、IO流这些可能对新手来说确实有些难度,如果实战不能理解,简单过一遍就好了,可以在后续的实战阶段,再加深理解;但是需要记住的基础知识和概念,请不折不扣的去学,并记住。

图片
阶段一:Java入门(15天)

⭐Java基础

知识点

学习资料

Java规范

通过前面的Java基础,我们对Java这么语言已经有了最基本的认识,也跟着文档、视频教程敲了很多代码了;凡是都有规矩,写代码也一样,有一套标准的规范,来提高代码的可读性和易维护性;后续的学习中,我们需要敲大量的代码,因此需要提前学习相关规范,并运用到实际的开发中,避免造成一些坏的习惯,后续可能需要花更多的时间来纠正;

规范

学习资料

阶段二:Java进阶(60天)

计算机基础(7天)

图片
计算机基础(7天)

⭐操作系统

知识点

资料

计算机网络

知识点

资料

⭐数据结构与算法(30天)

图片
数据结构与算法(30天)

知识点

资料

⭐设计模式(14天)

图片
设计模式(14天)

知识点

资料

阶段三:企业开发初级(100天)

当基础的知识,数据结构,算法、设计模式这些东西学完之后,就要正式开始企业级应用开发了;这个阶段,就需要将前面学到的东西运用起来,去解决实际的业务问题,那么在这个阶段里,将会进入到各种企业级框架软件工具的学习和使用。学完这个阶段,你就能真正成为一名企业后端开发工程师了。

图片
企业开发中级(150天)

MySQL(7天)

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一;但这个阶段并不需要对数据库做深入的学习,只需了解到SQL的一些基础知识,以及MySQL的常规使用即可;

图片
MySQL(7天)

知识点

资料

⭐Java Web(30天)

Java Web,是用Java技术来解决相关web互联网领域的技术栈,因此在本章节需要掌握JavaWeb开发基础知识,熟悉Java基本开发环境、 熟悉项目管理工具使用及Linux服务器使用,满足Java软件开发行业的基本开发需求。

图片
Java Web(30天).

知识点

资料

⭐Spring(20天)

Spring 是目前主流的 Java Web 开发框架,是 Java 世界最为成功的框架。该框架是一个轻量级的开源框架,具有很高的凝聚力和吸引力。

图片
Spring(20天)

知识点

资料

⭐SpringMVC(10天)

Spring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。

Spring MVC 角色划分清晰,分工明细。由于 Spring MVC 本身就是 Spring 框架的一部分,可以说和 Spring 框架是无缝集成。性能方面具有先天的优越性,是当今业界最主流的 Web 开发框架,最热门的开发技能。

图片
SpringMVC(10天)

知识点

资料

⭐SpringBoot2(20天)

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

图片
SpringBoot2(20天)

知识点

资料

Spring Security(2天)

Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。

图片
Spring Security(2天)

知识点

资料

数据库中间件(3天)

图片
数据库中间件(3天)

MyBatis

知识点

资料

MyBatis Plus

知识点

资料

必会工具/软件(5天)

图片
软件(5天)

⭐Maven / Gradle

大部分时候,我们都会使用Maven或Gradle来管理项目间的依赖

知识点

资料

⭐Git

Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理

知识点

资料

前端(30天)

前端开发虽然不是Java后端工程师的必修课,但是一个优秀的后端工程师必然是会前端技术的,加上学习过程中,必不可少的需要前端做展示,所以,学习基本的前端的技术也很有必要;本前端路线主要针对Java后端开发,因此前端部分只需要能达到配合学习后端技术的程度即可;去过想学习完整的前端技术,可以通过公众号回复【前端路线】获取;

图片
前端(30天)

知识点

基础

框架

类库

进阶

工具

Linux(7天)

图片
Linux(7天)

知识点

资料

安全(1天)

图片
安全(1天)

加密算法

资料

阶段四:企业开发高级(100天)

图片
企业开发高级

微服务(30天)

Dubbo

Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

图片
Dubbo

知识点

学习资料

⭐SpringCloud 、SpringCloud Alibaba

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案,是阿里巴巴开源中间件与 Spring Cloud 体系的融合。

图片
SpringCloud 、 SpringCloud Alibaba

知识点

学习资料

中间件

图片
中间件(15天)

⭐Redis

REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库。

Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。

Redis 通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。

图片
Redis

知识点

基础数据类型

高级运用

进阶

Java整合Redis

资料

memcached

memcached是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但被许多网站使用。这是一套开放源代码软件,以BSD license授权发布。

图片
memcached

知识点

资料

mongodb

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

图片
mongodb

知识点

资料

消息队列

⭐RabbitMQ

RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

图片
RabbitMQ

知识点
资料

⭐Kafka

Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。

图片
Kafka

知识点
资料

RocketMQ

RocketMQ是一款分布式消息中间件,最初是由阿里巴巴消息中间件团队研发并大规模应用于生产系统,满足线上海量消息堆积的需求

图片
RocketMQ

知识点
资料

ActiveMQ

Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。

图片
ActiveMQ

知识点
资料

⭐Nginx

Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务;其特点是占有内存少,并发能力强。

图片
Nginx

知识点

资料

Zookeeper

ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。

ZooKeeper 的架构通过冗余服务实现高可用性。

Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。

一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

图片
Zookeeper

知识点

资料

⭐Netty(15天)

Netty 是一个异步事件驱动的网络应用框架,用于快速开发可维护的高性能服务器和客户端。

图片

知识点

资料

⭐Elasticsearch【ES】(15天)

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。

图片
Elasticsearch【ES】(15天)

知识点

资料

容器(15天)

⭐Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

我们可以将软件或者写的项目以容器的方式运行在Docker中,让安装、部署、更新更加的便捷。

图片
Docker

知识点

资料

Kubernetes(K8S)

Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。

图片
Kubernetes(K8S)

知识点

资源

阶段五:实战训练(30天)

经过全面4个阶段的学习,Java的基础知识,常用的企业应用开发框架都已经能熟练掌握并运用了,那么这个阶段就需要结合一个实际的业务场景进行实战训练,将各个知识点通过业务需求串联起来。

这里整理了一批比较优质的开源项目以及实战视频教程,可以根据自己的喜好,挑选一个业务场景,亲自从0开发一个实战项目

图片
阶段五:实战训练(30天)

开源项目

视频实战项目

微服务

前端

分布式、高并发

全栈

阶段六:Java高级(90天)

这个阶段,就涉及到很多Java的一些高级特性了,并发编程,JVM,架构设计等,如果能学习到这个阶段,说明你的自学能力已经非常强了,本章节中,很多概念并没有给出实际的教程,但给出了可行的解决方案,如果真正需要的话,可以根据自己展开学习;

图片
Java高级(90天)

⭐并发编程(30天)

图片
并发编程(30天)

知识点

资料

⭐JVM(30天)

图片
JVM(30天)

知识点

资料

架构方案(30天)

这里说到的一些方案在上面的学习中都用到过,实际企业产品开发中,会遇到各种书本上无法遇到问题,我们应当储备各种解决方案,在面对实际的问题时,能根据问题特点,制定合适的应对方案。

图片
架构方案(30天)

分布式技术

高可用

高并发

其他

阶段七:封神之路

当我们熟练掌握企业级应用开发之后,需要进一步的去探索底层的原理、架构设计、思想理念;不断去调整更大的业务场景、更多的并发量;只有一次次的去挑战边界,才能让你的技术领域越来越广。

图片
阶段七:封神之路

源码解析

框架

资料

计算机原理

行业

高级架构

大数据

技术栈

项目实战

求职面试

求职面试,不管在那个阶段,都需要精力,好的简历,充分的准备,是面试前的重要欢节,本章将学习如何去制作一份好的简历,以及面试的突击准备,让自己快速进入备考状态。

图片
求职面试

简历

岗位要求

资料

面试知识点

刷题小程序

面经

视频

持续成长

技术的成长需要持续不断的学习,并不能一蹴而就,每次逛知乎的时候,总能看到很多小伙伴在说,学了2天,找不到感觉;学了一周,什么也不会,这种心态本身就是不对的;一门计算机语言,不可能2天、一周就能学会的,如果真的是这样的话,那这门技术也就不值钱了;小时候学会说话都要花一两年,所以学习编程,同样需要静下心来,耐住性子,一步一个脚印的踏踏实实去学习;

技术的革新总是日新月异,在静下心的同时,还需要做好终生学习的准备,随时做好迎接新的挑战。