Java学习路线图(2021年最新版)

2023-11-03

第一阶段:Java基础

JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。

在Java基础板块中有6个子模块的学习:

  • 基础语法,可帮助你建立基本的编程逻辑思维;
  • 面向对象,以对象方式去编写优美的Java程序;
  • 集合,后期开发中存储数据必备技术;
  • IO,对磁盘文件进行读取和写入基础操作;
  • 多线程与并发,提高程序效率;
  • 异常,编写代码逻辑更加健全;
  • 网络编程,应用服务器学习基础,完成数据的远程传输。

学习该阶段,可以完成一些简单的管理系统、坦克大战游戏、QQ通信等。

第二阶段:数据库

数据库不仅仅是Java开发工程师的必学课程,也是其他语言都需要掌握的技能。用于对交互过程中客户的数据进行存储。

该板块包括关系型数据库和非关系型数据库。

例如:MySQL、oracle、redis、MongoDB等。

数据库学习完毕后,可以将数据存储到数据库中,也可以通过SQL语句从数据库中查询数据,结合Java项目可以实现动态站点的数据的保存。

第三阶段:前端技术

Javaweb阶段包括前端、数据库和动态网页。Javaweb是互联网项目的入门课程,是学习后面高进阶课程的基础。

首先,我们先看一下前端板块。该板块主要包括如下几个模块:

  • HTML5,网页制作标记语言;
  • CSS,对HTML制作网页进行美化;
  • JavaScript,嵌入在页面中的脚本语言,具备逻辑性;
  • Vue,前端框架,简化了与服务器端交互的操作,用户良好的交互体验是必不可少的。

学习前端技术后,可以完成类似京东、淘宝的前端工程的编写。

第四阶段:动态网页技术

动态网页是中级程序员服务器端编程的基础,是高级框架学习的必备课程,后期学习的框架、服务底层都是基于动态网页技术之上的。

该板块包括Javaweb核心技术、包括Servlet、Request、Response、Cookie和Session等,通过这些技术的学习可以完成动态站点开发,可更好的完成服务器端与客户的交互,让页面的数据“动”起来,做出小型的应用系统。

第五阶段:编程强化

编程强化是对解决实际问题方面做一个深入的了解和应用,是对JavaSE基础的加强,对后期自动以框架和对一些服务框架的底层理解做支撑。

编程强化板块主要包括如下几个模块:多线程高级、涉及线程内存、线程通信等;JVM优化,对JVM底层进行调优来提高项目执行效率;NIO,同步非阻塞IO来提高效率。

学习该阶段,可以对原有项目进行优化从而使程序更快更稳定。

第六阶段:软件项目管理

软件项目管理可以帮助我们很好地构建、管理与开发项目,比较流行常用的有项目构建工具Maven,版本管理工具SVN、Git、码云等。整体而言,学习成本很低,一个星期妥妥地搞定。

第七阶段:热门技术框架

使用Javaweb进行企业级开发是完全可以的,但是开发效率比较低,所以对常用的逻辑操作进行封装就形成了框架,因此框架是企业开发的入门技能。

热门框架板块主流框架有如下几个:Spring框架,占据统治地位,其生态系统涉及各个方面解决方案;MyBatis框架,使用ORM思想对数据库进行操作。

该板块学习后,就可以进行真实企业级项目开发了,做出的项目也会更加符合企业要求。

第八阶段:分布式架构方案

随着互联网的发展,业务的复杂性和用户的体验性都需要提高,所以分布式架构出现了。该板块主要讲解的是分布式架构的相关解决方案。

主要包括如下模块:

  • Dubbo,高性能的 RPC 服务发布和调用框架;
  • SpringBoot,简化Spring应用的初始搭建以及开发过程;
  • Spring Cloud,一系列框架的有序集合,如服务发现注册、配置中心、负载均衡、断路器、数据监控等。

该板块的学习,可以具备大型互联网项目开发的必备技术和实际经验,为进入BATJ打下基础。

第九阶段:服务器中间件

中间件板块是大型互联网项目中必备的。服务中间件可以帮助各子模块间实现互相访问,消息共享或统一访问等功能。其包括远程服务框架中间件,例如阿里(Apache)的RPC框架Dubbo等;消息队列中间件,例如:阿里巴巴开源分布式中间件RocketMQ、高吞吐量消息发布和流处理服务Kafka等。

学习服务中间件是中级JavaEE工程师必要技术,也是JavaEE架构师必须精通的技术。

第十阶段:服务器技术

不管是使用原生Javaweb进行开发,还是使用框架进行开发,项目最终需要对外发布才能供全世界的人访问到,而服务器板块就可以解决这个问题,所以服务器是项目发布的必要技术。该板块包括虚拟化和web应用服务器的学习,主要包括如下几个模块:

  • Vmware,虚拟机软件;
  • Linux,专门用于服务器的系统;
  • Nginx,集群部署时反向代理服务器;
  • Tomcat,项目发布时主要使用的服务器。

该板块学习后,我们就可以把开发好的项目发布到服务器中,然后供你的小伙伴远程访问了,超酷!

第十一阶段:容器技术

容器化技术是近两年超级火的一个专题,通过容器化技术可以对环境进行打包,方便移植,大大提高了开发效率。该板块包括容器化技术Docker和其平台管理引擎Kubernetes,其中,Docker 是一个开源的应用容器引擎,可以打包应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上,也可以实现虚拟化。

而Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效。通过该板块的学习,你可以通过上述技术快速搭建环境,节省开发时间,提高开发效率。

第十二阶段:业务解决方案

虽然我们已经具备了基础技术和高阶技术,但是要想与企业开发相接轨,还需要对实际项目的业务解决方案进行探究。而此版块就是在实际业务场景中的真实解决方案集合,常用的业务解决方案有如下:搜索业务场景解决方案、日志收集与分析场景解决方案、工作流引擎场景解决方案、任务调度场景解决方案、地图开发平台场景解决方案、支付开放平台场景解决方案、图表可视化场景解决方案。

通过分析实际业务来学习这个解决方案技术集,完全可以达到中级甚至高级工程师水平。

总结

Java学习是一条枯燥且充满荆棘的路,想法设法解决问题将会成为你工作的常态,唯一的乐趣或许就是技术攻坚后的瞬间喜悦。努力吧,少年,拿着这份学习路线图,去开启你的程序人生吧!

最后,如果你现在也在学习Java,了解Java,在整个Java入门的学习过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,都可以随时来一起交流,这是我的Java新手学习群。 这里面聚集了很多在正在转行学习Java技术的初学者,非常活跃,有任何不懂的都可以随时来问。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java学习路线图(2021年最新版) 的相关文章

  • 将 WAR 部署到 Tomcat(Spring Boot + Angular)

    我正在尝试使用以下命令部署 Spring Boot 应用程序WAR包装至Tomcat 10 应用程序已成功部署 但是 当我尝试访问端点时 它会导致404 未找到 战争文件 应用程序 war http localhost 8080 appli
  • 使用 TLS PSK 加密时如何正确检测流结束?

    我已经准备好了一个简单的 TLS PSK 客户端测试用例 https github com afarber jetty newbie tree master TlsPskClient2 src main java de afarber tl
  • 如何将webview内容划分为多个页面

    我必须使用 Android 上的 PdfDocument 从 webView 创建 PDF https developer android com reference android graphics pdf PdfDocument htm
  • Java:为什么.class文件中的方法类型包含返回类型,而不仅仅是签名?

    class 文件的常量池中有一个 NameAndType 结构 它用于动态绑定 该类可以 导出 的所有方法都被描述为 签名 返回类型 喜欢 getVector Ljava util Vector 当某些 jar 中方法的返回类型发生更改时
  • ZeroDateTimeBehavior=convertToNull 在使用 hibernate 的 jdbc url 中不起作用

    通过 extern 属性文件 url 指定如下 jdbc mariadb xxxxx 3306 xxxxx zeroDateTimeBehavior convertToNull 连接工作正常并且能够查询数据库 通过休眠 我创建了一个映射到带
  • JAX-WS 入门 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有人可以推荐一些关于 JAX WS 入门的好教程吗 使用各种工具 如 wsgen 等 您可以从这里开始 通过 Java SE 6 平台介绍
  • 使用 Spring MVC 在 jar 文件中显示 jsp 页面

    我正在使用 Spring MVC 3 2 2 在 java 中开发一个 Web 应用程序 我在从 jar 文件中加载 jsp 页面时遇到问题 Spring MVC Web应用程序具有以下结构 META INF WEB INF spring
  • Jenkins 未显示 Maven 编译器错误

    在 Jenkins 中构建多模块 maven 3 项目时 如果出现构建错误 我们会收到一条神秘消息 表明 Maven 编译器插件失败 这在上周才刚刚开始发生 INFO BUILD FAILURE INFO INFO Total time 1
  • 如何杀死 Java Future?

    我正在开发的服务使用 Future 来并行运行多个任务 每个任务最多可能需要一分钟才能完成 然而 外部库似乎有问题 因为在某些情况下 2 的时间 它不会返回 在这些情况下 我想给出 2 分钟的等待时间 如果还没有返回 我想杀死 future
  • Android 信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR) libwebviewchromium.so

    对于 android 4 4 我多次收到 Native crash at system lib libwebviewchromium so 错误 以下是设备包括 Xperia Z1 SO 01F 16 30 2 Galaxy Tab4 7
  • 清空变量不会使方法引用无效[重复]

    这个问题在这里已经有答案了 为什么代码不抛出NullPointerException当我使用与变量绑定的方法引用时dog我后来分配了null to 我正在使用 Java 8 import java util function Functio
  • 使用 https 的 Web 服务身份验证给出错误

    我编写了一个简单的 Web 服务 并使用摘要和 HTTPS 身份验证来保护它 我已经使用 Java 中的 keytool 生成了我的证书 当我通过创建 war 文件在 Tomcat 中部署 Web 服务时 axis 的欢迎页面正确显示 但是
  • 是否可以使用 Apache Tika 提取表信息?

    我正在寻找 pdf 和 MS Office 文档格式的解析器 以从文件中提取表格信息 当我看到 Apache Tika 时 正在考虑编写单独的实现 我能够从任何这些文件格式中提取全文 但我的要求是提取表格数据 我希望有 2 列采用键值格式
  • 为休息服务实施 JUnit 测试

    我必须为我的休息服务实现一些 JUnit 测试 例如 这是我的休息服务之一 Path dni fe public class HelloWorld POST Path home Consumes MediaType APPLICATION
  • React Native v0.71.8 React-native-vector-icons 你看不到的图标

    我在用react native版本v0 71 8 我安装了react native vector icons库 但图标未显示 似乎链接在最新版本的 React Native 中不再起作用 所以我按照说明进行操作 但它不再编译 出现以下错误
  • 在约束验证器中使用 Guice 进行依赖注入

    我有一个在 ConstraintValidator 的实现中注入类的用例 我正在使用 Google guice 进行依赖项注入 目前无法在验证器内注入 我的场景的简化形式 内部模块 Provides Singleton public Ser
  • Java 8:如何创建毫秒、微秒或纳秒的 DateTimeFormatter?

    我需要创建格式化程序来解析具有可选的毫秒 微米或纳秒分数的时间戳 例如 对于我的需求 我看到以下机会 DateTimeFormatter formatter new DateTimeFormatterBuilder append DateT
  • 添加 char 和 int

    据我了解 字符是一个字符 即一个字母 一个digit 标点符号 制表符 空格或类似的东西 因此 当我这样做时 char c 1 System out println c 输出 1 正是我所期望的 那么为什么当我这样做时 int a 1 ch
  • 向Java类库添加函数

    我使用的 Java 类库在很多方面都不完整 有很多类我认为应该内置其他成员函数 但是 我不确定添加这些成员函数的最佳实践 让我们调用不足的基类A class A public A long arbitrary arguments publi
  • Graphics2D setfont() 严重减慢了 java 应用程序的启动速度

    我正在用java制作一个游戏 它每秒刷新60次 每次执行循环时 我都会使用 g2d 来绘制图像和字符串 如果我这样做的话一切都会很好g2d setFont new Font Arial Font PLAIN 8 和抽绳 这将是正常的 但如果

随机推荐

  • 有什么哪些便宜的云服务器推荐?

    竞争激烈的时代 优惠永远不会少 1元团购 1元打车 0元骑单车 1元吃外卖 1元游景区 1元XXX等等 正是由于激烈的竞争 我们才可以享受折扣力度如此大的活动 谁让这是互联网时代呢 得用户者才得天下 云计算时代 亦是如此 在新基建的引导下
  • 解决报错:@org.springframework.beans.factory.annotation.Autowired(required=true)

    先把问题贴出来 org springframework beans factory annotation Autowired required true 报这个错是因为 Autowired required true 当使用 Autowir
  • 利用Spring-MVC访问数据库

    1 创建相关的项目 首先相关路径 在pom xml中添加具有Spring mvc mysql dbcp的三个包 2 首先创建Admin类与数据库信息对应 2 1 数据库 2 2 jdbc properties 名称不可改变 user是数据库
  • Python读写CSV文件--追加方式多空行

    说明 文章首发于HURUWO的博客小站 本平台做同步备份发布 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览 原文链接 Python读写CSV文件 追加方式多空行直接点击即可前往访问 更多技术文章访问本人博客HuRuWo的
  • 3dmax文件打不开了,怎么办

    3dmax文件 有时候原来操作还是好好的 下一次或者隔天再打开的时候 就会出现错误 无论怎么开 都开不了 这个该怎么办 其实这种情况 还真不好办 因为很多情况下 这种文件基本是损坏了 再打开会比较难了 造成这样的原因多种多样 有一种是病毒引
  • 用Vue.js开发一个电影App的前端界面

    我们要构建一个什么样的App 我们大多数人使用在线流媒体服务 如Netflix 观看我们最喜欢的电影或者节目 这篇文章将重点介绍如何通过使用vue js 2 建立一个类似风格的电影流媒体WEB交互界面 见上图 最终的产品可以去这里找 htt
  • 完美匹配-匈牙利算法(Hungarian method Edmonds)讲解

    目录 匈牙利算法 Hungarian method Edmonds 例题1 有完美匹配 例题2 无完美匹配 代码实现 变量及函数说明 测试数据1 测试结果1 测试数据2 测试结果 匈牙利算法 Hungarian method Edmonds
  • char和varchar的区别、区别的原因以及常用场景举例

    一 区别 1 最大长度 char最大长度是255字符 varchar最大长度是65535个字节 2 定长 char是定长的 不足的部分用隐藏空格填充 varchar是不定长的 3 空间使用 char会浪费空间 varchar会更加节省空间
  • 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(4)-Charles如何设置捕获会话

    1 简介 前边几篇宏哥介绍了Charles界面内容以及作用 今天宏哥就讲解和分享如何设置Charles后 我们就可以愉快地捕获会话 进行抓包了 因为上一篇许多小伙伴看到宏哥的Charles可以分开看到request和response 而自己
  • tp5怎么验证手机号码

    直接上干货 转载于 https www cnblogs com yehuisir p 11595274 html
  • python 定义全局变量

    python定义全局变量 全局变量可以在代码任意位置创建 能够被所有对象和函数引用 有利于变量的共享 全局变量的定义 global 变量名 声明后引用 OLD URL http oldboyedu com def bb global OLD
  • luajit class

    https gist github com gaspard 1087382 https gist github com marciol 1983296 luajit simple jit lua ffi require ffi simple
  • 逆向分析学习入门教程

    转在于 逆向工厂 一 从hello world开始 前沿 从本篇起 逆向工厂带大家从程序起源讲起 领略计算机程序逆向技术 了解程序的运行机制 逆向通用技术手段和软件保护技术 更加深入地去探索逆向的魅力 一 程序如何诞生 1951年4月开始在
  • 20系列显卡服务器,RTX20系列被严重低估,他不仅是一张游戏显卡

    Turing架构的另一个特殊功能是它具有Tensor Core 这是用于深度学习AI运算的计算单元 借助Tensor Cores Turing图形卡的AI性能得到了极大的提高 FP32浮点性能达到13 4TFLOPS FP16浮点性能甚至达
  • 【LaTex】第二行作者居中(IEEEtran模板)

    LaTex 第二行作者居中 IEEEtran模板 存在的问题 有四个或五个作者的时候 第二行的作者无法居中 解决方案 在环境中添加如下代码 作者居中 makeatletter newcommand linebreakand end IEEE
  • TensorFlow出现Found Inf or NaN global norm的排查和解决办法

    在训练神经网络的时候 由于一些原因会出现NaN或者Inf 致使训练终止 在查阅相关资料之后 并且结合我出现的问题 做了一些总结 出现的代码在TensorFlow 1 12 2版本可正常执行 出现问题的原因 出现NaN或者Inf的原因一般可分
  • 【stm32学习】正点原子stm32f103学习——开发板入门

    一 连接外设 数据手册中FT标志的IO口是兼容5V的 原理图上带ADC都是不兼容5V 判断能否作为ADC输入 外设 首先了解一下ADC ADC是Analog to DigitalConverter的缩写 指模 数转换器或者模拟 数字转换器
  • 真实业务场景展现CAS原理的ABA问题及解决方案

    文章目录 阅读提示 CAS原理 ABA问题介绍 真实业务场景 如何解决ABA问题 CAS学习总结 阅读提示 本文将借助开保险柜的业务场景重点阐述误用AtomicBoolean引起的ABA问题 以及解决方案 基于此 请先深入理解CAS原理 以
  • 将Flutter添加到现有应用——过程中遇到的问题

    参照官方文档试着将Flutter集成到现有的Android应用 出现了错误特此来记录一下 本文所展示项目的运行环境 Flutter SDK Version 2 8 1 AndroidStudio Version Bumblebee 2021
  • Java学习路线图(2021年最新版)

    第一阶段 Java基础 JavaSE基础是Java中级程序员的起点 是帮助你从小白到懂得编程的必经之路 在Java基础板块中有6个子模块的学习 基础语法 可帮助你建立基本的编程逻辑思维 面向对象 以对象方式去编写优美的Java程序 集合 后