2021 Java后端学习路线

2023-05-30 0 771

序言

两门“终将落伍”的程式设计词汇—Java,为什么说Java是“终将落伍”呢?尽管这一两年Java的程式设计界行业龙头的位置被Python,C胜过过。但随着5G时代的来临,天地万物数据服务,更多的终端产品会采用Android系统,因此未来5年甚至10年Java合作开发必定是会越来越火热的。上面就是我归纳的2021遍布世界各地新一代的Java后端自学走线。

Lembron(隐晦版):

2021 Java后端学习路线

详细描述

计算机系统基本科学知识

自学Java之前最合适要了解许多计算机系统基本科学知识。这样会使你学起来更随心所欲一点,比如说计算机系统硬件的组成及各重要组成部分的机能、十进制科学知识、作业系统、互联网、民主化、缓存、Linux常见命令等。那些尽管是此基础,但都很关键,基本上都是会充斥你整个程式设计职业生涯。虽说“墙高基下,虽得必失”,因此打好此基础是很关键的。

Java基本科学知识

当他们掌控一定的计算机系统基本科学知识之后,自学Java就不能昂西桑县。比如说词汇此基础、多处理器、JVM(Java软件包)、Java的程序语言思想和常见此基础类、子集、IO流、多处理器、极度、散射等。那些此基础的小东西才是中非常困难的。当你把那些此关键性的小东西搞的很有条理,那么你以后的自学职业生涯基本上不能碰到什么大的难题。

常见辅助工具

他们自学Java会采用到很多辅助工具。我来介绍一下他们最常见的许多辅助工具,比如说IDEA、Eclipse、Git、SVN、Mavan、Gradle、JMC、VSCode、PostMan、Google Chrome、PDMan、Linux难题预测辅助工具等。

IDEA

IDEA是普遍认可为最合适的Java合作开发辅助工具,尤其在智能化标识符副手、标识符手动提示信息、解构、JavaEE支持、各种类型版辅助工具(git、svn等)、JUnit、CVS资源整合、标识符预测、 技术创新的GUI设计等方面的机能可以说是高智商的。

Eclipse

Eclipse是知名的虚拟化的民主自由软件系统合作开发环境(IDE)。起初主要用以Java词汇合作开发,但现在有人通过应用程序使其作为其他计算机系统词汇比如说C++和Python的合作开发辅助工具。

Git

Git 是一个开源的分布式版控制系统,用于敏捷、有效、高速的处理任何很小或很大的项目。 Git 与常见的版控制辅助工具 CVS, Subversion 等不同,它采用了分布式版库的方式,不必服务器端软件支持。

SVN

SVN是subversion的缩写,是一个开放源标识符的版控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同合作开发同一个项目,实现共享资源,实现最终集中式的管理。但SVN必须在有互联网的情况下才能提交标识符而Git并不需要。

Mavan

Maven是 Apache 下的一个纯 Java 合作开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。 Maven 是一个项目管理辅助工具,可以对 Java 项目进行构建、依赖管理。 Maven 也可被用于构建和管理各种项目,比如说 C#,Ruby,Scala 和其他词汇编写的项目

<dependencies> <!– 在这里添加你的依赖 –> <dependency> <groupId>com.mc</groupId> <!– 包路径,也可以自定义 –> <artifactId>mc-utils</artifactId> <!–库名称,也可以自定义–> <version>1.0</version> <!–版号–> <scope>system</scope> <!–作用域–> <systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath> <!–项目根目录下的lib文件夹下–> </dependency> </dependencies>

JMC

JMC是源自JRockit JVM的一套监控和管理辅助工具,Oracle在发布JAVA 7u4(Java 7 Update 40)时将其包含在JDK中,用户不再需要单独下载。

采用 JMC可以监视和管理 Java 应用程序,不能导致相关辅助工具类的大幅度性能开销,它采用为 Java 软件包 (JVM) 的普通自适应动态优化收集的数据。

VS Code

是Microsoft在2015年4月30日Build合作开发者大会上正式宣布一个运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web和云应用的虚拟化源标识符编辑器 可在桌面上运行,并且可用于Windows,macOS和Linux。它具有对JavaScript,TypeScript和Node.js的内置支持,并具有丰富的其他词汇(比如说C++,C#,Java,Python,PHP,Go)和运行时(比如说.NET和Unity)扩展的生态系统(摘自百度百科

PostMan

在他们平时合作开发中,特别是需要与接口打交道时,无论是写接口还是用接口,拿到接口后肯定都得提前测试一下,这样的话就非常需要有一个比较给力的Http请求模拟辅助工具,现在流行的这种辅助工具也挺多的,像火狐浏览器应用程序-RESTClient,Chrome浏览器应用程序-Postman等等。这里介绍的Postman并不是Chrome浏览器应用程序,因为2018年初Chrome停止对Chrome应用程序的支持。Postman提供了独立的安装包,不再依赖于Chrome浏览器了。同时支持MAC、Windows和Linux。

PDMan

PDMan是一款开源免费的数据库模型建模辅助工具,支持Windows,Mac,Linux等作业系统,支持常见数据库MySQL,Oracle,SQLServer,DB2等。PDMan是PowerDesigner之外,另一个更好的免费的替代方案。他具有颜值高,采用简单的特点。包含数据库建模,灵活手动的手动生成标识符模板,手动生成文档,手动同步DDL脚本到数据库,数据模型版管理等多种合作开发人员实用的机能。

前端

尽管他们是后端,但他们可不能闭门造车,他们后端也是要学许多前端科学知识的。HTML、CSS、JS、Ajax我觉得是必须掌控的点,那些看着简单,但如果深究的话,还是有很多点的。 还有市面上比较火的的前端三大框架Angular、React、Vue。那些小东西入门很简单,他们后端的话,只要会用其实就够了,不用深究其中的原理。 对我来说,前端归纳起来就是一句话,入门简单,精通很难。

数据库

数据库是数据的仓库。 与普通的“数据仓库”不同的是,数据库依据“数据结构”来组织数据,因为“数据结构”,因此他们看到的数据是比较“条理化”的(比如说不能跟以前的普通文件存储式存储成一个文件那么不条理化,他们的数据库分成一个个库,分成一个个表,分成一条条记录,这些记录多么分明) 数据库分为关系型数据库和非关系型数据库。关系型数据库的是以表格形式存储的,非关系型数据不适合存储在数据表的行和列中,而是大块组合在一起。非关系型数据通常存储在数据集中,就像文档、键值对或者图结构 主流的关系型数据库:Mysql、Oracle、DB2、PostgreSQL、SQL Server 主流的非关系型数据库:Redis、MemcacheDB、MongoDB

缓存中间件

在计算中,缓存是一个高速存储层,其中存储了数据子集,且通常是短暂性存储,这样日后再次请求此数据时,速度要比访问数据的主存储位置快。通过缓存,可以高效地重用之前的检索或计算的数据。

MemCached

MemCached是一种基于内存的key-value存储,用以存储小块的任意数据(字符串、对象)。它便于快速合作开发,减轻合作开发难度,解决了大数据量缓存的很多难题,本质上,它是一个简洁的key-value存储系统

Redis

Redis 是完全开源免费的,是一个高性能的key-value数据库。Redis与其他key – value 缓存产品对比有着许多优势。Redis支持数据持久化,将内存中的数据保存在磁盘中,重启的时候可以再次加载出来。 Redis支持多种数据结构的存储。Redis支持数据备份。

基本框架

Java后端许多必须的框架,Spring、Spring MVC、Mybatis、Mybatis Plus、Spring Boot。那些是最基本的框架,空余时间还可以自学分布式框架,NIO框架等等

网关

网关就是对请求到他们系统的所有请求做一个拦截,对那些请求做许多处理,最后找到对应的路由去请求。

难题1: 单机顶不住,他们多加几台服务器做集群,但怎么将流量均匀的发到那些服务器上呢? 负载均衡,LVS

难题2: 他们机器都是通过IP访问的,那怎么通过他们申请的域名去请求到服务器呢?: DNS

难题3: 大家平时刷的短视频平台,是怎么保证同时为全国的用户提供快速的体验? CDN

难题4: 他们这么多服务和中间件,是怎么去管理调度的? Zookeeper

难题5: 这么多的服务器,怎么对外统一访问呢,就可能需要知道反向代理的服务器。 Nginx

消息队列

他们可以把消息队列比作是一个存放消息的容器,当他们需要采用消息的时候可以取出消息供自己采用。消息队列是分布式系统中关键的组件,采用消息队列主要是为了通过异步处理提高系统性能和削峰、降低系统耦合性。目前采用较多的消息队列有ActiveMQ,RabbitMQ,Kafka,RocketMQ。 归纳起来就是一句话,消息队列主要是做异步、解耦、消峰的

搜索引擎

搜索引擎是一个帮助用户搜索他们需要内容的计算机系统程序。换一种说法,搜索引擎就是把计算机系统中存储的信息与用户所需要的信息(information need)相匹配,并把匹配的结果展示出来。 比如说:张三想购买一个手机,他在某宝的搜索框中输入 手机 ,然后点击搜索按钮,在他按下搜索按钮的时候,就会根据 手机 两个字去某宝的巨大的数据库中搜索,然后拿到所有的关于手机的产品,展示给张三。

RPC

RPC(Remote Procedure Call)远程过程调用,通俗来讲就是,一个服务调用另一个服务提供的接口。 目前主流的RPC框架有,Dubbo、SpringCloud、Netty

容器

容器是一种沙盒技术,主要目的是为了将应用运行在其中,并与外界隔离,可以方便的将这个沙盒转移到其他机器上。通俗点的理解就是一个装应用软件的箱子,箱子里面有软件运行所需的依赖库和配置。合作开发人员可以把这个箱子搬到任何机器上,且不影响里面软件的运行。 目前主流的容器技术有,Docker、Kubernetes

大数据

大数据是指无法在一定时间范围内用常规软件辅助工具进行捕捉、管理和处理的数据子集。大数据的五大特征:1、大量;2、高速;3、多样;4、低价值密度;5、真实性。大数据最核心的价值就是在于对于海量数据进行存储和预测 大数据技术:ODPS,Hadoop,Hive,Hbase,Cassandra,Flink,Spark

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务