Java10年技术架构演进

一、前言

又快到了1024,现代人都喜欢以日期的特殊含义来纪念属于自己的节日。虽然有点牵强,但是做件事情,中国人总喜欢找个节日来纪念,程序员也是一样。甚至连1111被定义成光棍节,这也算再无聊不过了。不过作为程序员,一年中找到属于自己的一个节日,做做总结也不错。Java从1995年诞生以来,已经走过了28个年头。博主就根据自己的经验总结一下java 10年来的技术架构演进。这些都是属于主观记忆,没有经过查证的,若有错误,请直接忽略。

二、java 10年技术演进

jdk1.5,10年前使用的应该是jdk1.5,记得那时候学习java课,首先学习怎么安装jdk和查看jdk是否安装成功。以前安装jdk的方法,现在依然 有效,以jdk1.8作为演示

1、此电脑-右键-属性-系统-关于    

2、环境变量-系统变量配置-新建-变量名:JAVA_HOME 变量值:C:\Program Files\java\jre1.8.0_92

3、(path本身电脑上自带,只需把这两个添加上)配置path:新增或编辑加上:%JAVA_HOME%\bin

                                                                                                           %JAVA_HOME%\jre\bin

     

4、环境变量-系统变量配置-新建-变量名:CLASSPATH 变量值:%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar

‘%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib\logkit-2.0.jar’(安装jdk是为了用jmeter,由于我的电脑java变量值不能使用,直接配置了jmeter的变量,jmeter可正常使用)

5、查看配置的jdk可不可以使用。cmd打开命令提示符输入:java -version。如图所示为jdk配置成功。本人配置完后需要重启电脑,才有如图提示,未重启时不是这个提示

 

jdk1.5的时代,那时候还没有什么前后端分离的开发模式,java开发的注解也很有,那时候经常写的后端代码是servlet

servlet:

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

10年前能够通过servlet编写网站,算是技术不错的了,前后端都是java程序员在编写。

后面有了JSP技术,页面和后端的偶尔就主键分开。

那时候使用的比较多的java web架构是 java+Tomcat+mysql+JSP技术。连现在使用的什么缓存,消息队列这种东西都很少使用。 那时候如果说会个什么redis rabbitMQ什么的,算是技术大牛。

在JSP时代,前后端还是java程序员在编写。

那时候就是填各种表单,调css样式,写javascript脚本。那时候比较流行的有一个ajax的,异步请求,局部刷新。 一般面试都会问会不会使用这个。

再过了几年,随着网站越来越复杂,各种电商还有各种游戏公司的兴趣,对系统的性能要求越来越高,

就出现了分布式系统的架构和缓存的使用,一般架构都使用分层的架构

那个时代主要是BAT几家在主导国内的技术架构

就出现了 springMVC+mybatis+redis+mysql+jsp 然后继续演进 SpringBoot+Dubbo+MybatisPlus+Redis+mysql+RockMQ+VUE的这样技术架构

再就是这几年,出现了云的概念,很多架构都是基于云的生态了发展。

现在一般就是 云+springBoot+springCloud+Redis+MybatisPlus+mysql+RockMQ+docker或k8s+vue等等

一个比较重要的分工是现在一般都使用前端后分离的开发模式。这算是一个里程碑,专门的人做专门的事情,因为以前的java开发人员写页面的真的没什么美感,只在乎功能的实现,再说一个人的精力有限,什么都做自然什么都不精。

三、未来技术

个人认为未来搞java不再是门槛搞的技术也不会显的很重要,在这几年吵吵嚷嚷的低代码平台和技术,就是为了一劳永逸解决建站。还有现在的什么人工智能,这些玩意,也将训练成会写代码。以后可能会出现另外一种业态才能拯救我们,可能与计算机无关。因为人总得有事情做,有工作做才能生存下去。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/109557.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

报考阿里云acp认证,你得到的是什么?

放眼全球能够和亚马逊AWS、微软Azure竞争的,国内也就只有阿里云了。 阿里云目前稳居国内云计算市场第一,比排后面5名同行市场占有率的总和还要多,全球云计算市场,阿里云目前排名第3位。 阿里云的市场占有率说明市场对于阿里云产…

kafka、zookeeper、flink测试环境、docker

1、kafka环境单点 根据官网版本说明(3.6.0)发布,zookeeper依旧在使用状态,预期在4.0.0大版本的时候彻底抛弃zookeeper使用KRaft(Apache Kafka)官方并给出了zk迁移KR的文档 2、使用docker启动单点kafka 1、首先将kafka启动命令,存储为.servi…

小程序:uniapp解决主包体积过大的问题

已经分包但还是体积过大 运行时勾选“运行时是否压缩代码”进行压缩 在manifest.json配置(开启分包优化) "mp-weixin" : {"optimization" : {"subPackages" : true}//.... },在app.json配置(设置组件按需注入…

TCP通信-同时接受多个客户端消息

同时处理多个客户端消息的原理 代码实现 public class ClientDemo1 {public static void main(String[] args) {try {System.out.println("客户端启动");// 1、创建Socket通信管道请求有服务端的连接// public Socket(String host, int port)// 参数一:服…

现代 ERP 系统,如何使中小企业智能制造商受益?

中小企业智能制造商大多依靠手工操作或电子表格模式,或少数几个软件组成的集合体,或是依靠传统的ERP系统来管理企业运营。经营利润率低、订单到现金的周期缓慢、客户付款延迟、管理成本增加,使他们的生存变得更加困难。许多企业一直在以最少的…

视频模板SDK,为企业带来无限创意与效率

在当今的数字化时代,视频已经成为了信息传播的主流方式之一,对于企业来说,制作高质量的视频已经成为了一项重要的业务需求。然而,制作一部高质量的企业视频需要耗费大量时间和金钱,对于许多企业来说是一个不小的负担。…

软件测试基础知识整理(详细版)

一、软件测试概述 1、软件缺陷 软件缺陷:又称之为“Bug”。即计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。 缺陷的表现形式: 软件没有实现产品规格说明书所要求的功能模块; 软件中出现了产…

数据结构 优先级队列(堆)

数据结构 优先级队列(堆) 文章目录 数据结构 优先级队列(堆)1. 优先级队列1.1 概念 2. 优先级队列的模拟实现2.1 堆的概念2.2 堆的存储方式2.3 堆的创建2.3.1 堆向下调整2.3.2 堆的创建2.3.3 建堆的时间复杂度 2.4 堆的插入与删除2.4.1 堆的插入2.4.2 堆的删除 2.5 用堆模拟实现…

再见Jenkins!你好,GitLink引擎,更强大的自动化部署工具!

文章目录 写在前面一、准备工作1.1 注册GitLink账号1.2 托管项目1.3 新建项目管理引擎流水线 二、开始构建流水线2.1 进入图形流水线编辑页2.2 添加git clone节点2.3 添加shell节点2.4 添加allure html节点2.5 添加新建GitLink疑修节点2.6 添加钉钉通知节点2.7 设置任务触发器2…

Python学习基础笔记七十五——Python调用其他程序

Python经常被用来开发自动化程序。自动化程序往往需要调用其他的程序。 例如,我们可以代码中调用wget程序,而不是自己开发下载的代码。 这就是我们经常做的,在我们的Python程序中调佣其它程序,帮我们实现功能。 Python中调用外部…

危险化工品出口注意事项及法规要求_箱讯科技

随着全球化工品市场的不断发展,危险化工品出口业务逐渐成为国际贸易的重要组成部分。然而,由于危险化工品具有潜在的危险性,出口过程中需严格遵守相关法规和注意事项,以确保运输安全和顺畅。本文将详细介绍危险化工品出口注意事项…

Linux | vim的入门手册

目录 前言 一、什么是vim 二、vim编辑器的模式 1、插入模式 (1)用vim打开文件 (2)进入插入模式 2、默认模式 (1)光标移动 (2)复制、粘贴与剪切操作 (3&#x…

UE4中无法保存项目问题

系列文章目录 文章目录 系列文章目录前言一、解决方法 前言 取消:停止保存所有资产并返回编辑器。 重试:尝试再次保存资产。 继续:仅跳过保存该资产。 当我点击继续时,关闭项目,然后重新打开项目,发现之前…

广州虚拟动力携数字人全栈式产品,邀您来2023世界VR产业大会(南昌)一探虚实

2023年10月19-20日,由工业和信息化部、江西省人民政府联合主办,中国电子信息产业发展研究院、江西省工业和信息化厅、南昌市人民政府、虚拟现实产业联盟共同承办的2023世界VR产业大会将在南昌绿地国际博览中心盛大举办。 广州虚拟动力作为3D、AI虚拟人领…

React之受控组件和非受控组件以及高阶组件

一、受控组件 受控组件,简单来讲,就是受我们控制的组件,组件的状态全程响应外部数据 举个简单的例子: class TestComponent extends React.Component {constructor (props) {super(props);this.state { username: lindaidai }…

VSCode 调试 u-boot

文章目录 VSCode 调试 u-boot调试配置启动 u-boot 脚本调试界面重定向之后继续调试参考 VSCode 调试 u-boot 调试配置 参考 qemu基础篇——VSCode 配置 GDB 调试 要想调试 u-boot 只需要再添加一个 u-boot 的配置即可 {"version": "0.2.0","conf…

学习笔记|串口通信实战|简易串口控制器|sprintf函数|STC32G单片机视频开发教程(冲哥)|第二十一集(下):串口与PC通信

目录 3.串口通信实战实操简易的工作原理Tips:sprintf函数简介 总结课后练习 3.串口通信实战 做一个简易串口控制器。发送对应指令,让板子做相应的事情,或者传输数据(文本模式下发送,不要选择HEX)。 1.串口发送字符Ax\…

2020年亚太杯APMCM数学建模大赛B题美国总统的经济影响分析求解全过程文档及程序

2020年亚太杯APMCM数学建模大赛 B题 美国总统的经济影响分析 原题再现: 美国总统选举每四年举行一次。 2020年是美国总统大选年,共和党候选人唐纳德特朗普和民主党对手乔拜登竞选总统。 甲乙双方候选人在金融贸易,经济金融治理,…

python爬虫实战-京东商品数据

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 今天介绍一下如何用 Python 来批量获取京东商品信息!! 如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 第三方库: requests >>> pip install requests 开发环境: python 3.8 py…

【iOS】——用单例类封装网络请求

文章目录 一、JSONModel1.JSONModel的简单介绍2.JSONModel的使用 二、单例类和Block传值 一、JSONModel 1.JSONModel的简单介绍 JSONModel一个第三方库,这个库用来将网络请求到的JSON格式的数据转化成Foundation框架下的Model类的属性,这样我们就可以直…