盘点 6 个被淘汰的 Java 技术,它们都曾经风光过!
大家好啊,今天栈长给大家分享下我的开发历程中,我知道的那些被淘汰的技术或者框架,有些我甚至都没有用过,但我知道它曾经风光过。
废话不多说,下面我要开始吹了……
1、Swing
下面这个是用 swing 开发的:
图来源网络,有没有似曾相识的感觉?懂的自然懂!
栈长去年中秋也用过 swing:
Swing 算是 Java 早期代替 AWT 的桌面应用 GUI 开发工具包,一个听到就已经淘汰的技术,给我的感觉就是丑丑丑!现在与 AWT 一起在时间这个长河里长眠。
如果 Java GUI 库发展历程分为三代,可以是:
AWT > SWING > JAVAFX
随着 JavaFx 的发布,加速 SWING 的被淘汰。下面这个是用 JavaFx 开发的:
图来源:zhihu.com/question/54498643/answer/271632290
现在 JavaFx 也有十来年了,虽然这篇帖子也在说 JavaFx 淘汰了的,只是现在桌面应用不是主流吧,我也没用过不敢乱说,JavaFx 在桌面应用开发应该还是有一席之地的。
2、JSF
JSF:Java Server Faces
JSF是一种用于构建 Java Web 应用程序的表现层框架,和 Struts 一样性质的框架。
国内用 JSF 的比较少,有也是老系统了,国外应该还有用 JSF 的,不过随着 Spring MVC, Spring Boot 的横空出世,JSF 应该也是过时的技术了。
3、EJB
EJB也是个神器,只见其影,未见其身。前些年,在网上各个面试题还有它的身影,现在估计很难见到了。
EJB:Enterprise Java Beans,即:企业Java Beans
Sun公司发布的文档中对 EJB 的定义是:EJB 是用于开发和部署多层结构的、分布式的、面向对象的 Java 应用系统的跨平台的构件体系结构。
简单来说,EJB就是部署分布式系统用的,就是把A程序放在服务器上,通过B客户端来调用,并且是跨平台的。
图来源:oreilly.com
因为 EJB 过于复杂和笨重,调试非常麻烦,现在都被轻量级的 RPC 框架(Dubbo)及轻量级 Restful 形式的分布式框架 (Spring Cloud) 替代了。关注微信公众号Java技术栈在后台回复分布式可以获取分布式架构系列教程。
4、JSP
JSP 全称:Java Server Pages,是由早期的 Sun 公司发布的一种动态网页开发技术,即在 HTML 网页代码中嵌入 JSP 标签的 Java 代码实现动态网页。
JSP 代码示例:
<html>
<head>
<title>微信公众号Java技术栈</title>
</head>
<body>
<%
out.println("Hello, Java技术栈!");
%>
</body>
</html>
这个示例只是简单的调用 JSP 的内置 out 对象在页面输出展示一句话。
JSP 的本质其实就是 Servlet,JSP 文件被编译之后,就变成了 Servlet Java 类文件,因为 JVM 虚拟机只能识别 Java 字节码文件,而不能识别 JSP 文件。
在 JSP 的时代,那时候还没有前后端分离的说法,JSP 可以包揽全部,即实现静态页面,又实现动态代码逻辑,全部都在一个 JSP 文件里面。这样,一个程序员既是前端,又是后端。
但是,现如今在前后端分离的热潮下,前后端分工明确,后端只负责业务逻辑的接口开发,前端负责调用后端接口再做页面数据封装展示,JSP 几乎是被淘汰了。
虽然 JSP 是被前后端分离取代了,但并不说明 JSP 没有用了,不是所有系统都是前后端分离的,比如说一个只有两三个页面的动态系统,JSP、Servlet足以搞定,你总不能上页面模板引擎、各种框架,或者再上前后端分离吧?
5、Struts
Struts2 那些年可谓是风光无限啊,Struts2 + Spring + Hibernate 三大框架一起组成了 "SSH"————牛逼哄哄的 Java Web 框架三剑客。
Struts 这篇就不多说了,具体看这篇:Struts2 为什么被淘汰?
6、Memcached
Redis 这几年的大热,现在已经替代 Memcached 成为缓存技术的首要中间件,作为大厂的带头兵,在 BAT 里面,Redis 也已经逐渐取代了 Memcached,广泛使用 Redis 作为缓存应用方案。
为什么 Redis 能后来居上呢?关注微信公众号Java技术栈在后台回复redis可以获取 Redis 系列教程、
1)速度更快
Memcached 使用的是多线程模型,既然是多线程,就会因为全局加锁而带来性能损耗。而 Redis 使用的是单线程模型,没有锁竞争,速度非常快。
相关阅读:Redis 到底是单线程还是多线程?
2)数据类型更丰富
Memcached 数据类型非常单一,只支持 String 数据类型,在业务实现上就非常有瓶颈。
而 Redis 支持 string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(sorted set:有序集合) 等……丰富的数据类型可以让 Redis 在业务上大展拳脚。
这也是 Redis 能代替 Memcached 最重要的原因之一。
相关阅读:Redis 的 8 大应用场景!
并且,Memcached 值最大上限为:1M,而 Redis 最大可以到:1GB。
3)数据持久化
Memcached 不支持持久化,Redis 支持。
缓存服务器断电后,Memcached 的数据是不能恢复的,而 Redis 可以将数据保久化在磁盘中,服务器重启的后可以加载再次使用,不会造成数据断电丢失。
比如,有些数据是直接放在缓存数据库中的,其他地方可能没有备份,如果丢失了,那可能会造成业务影响,这也是 Redis 非常有用的一个保障特性。
总结
好了,今天栈长列举了 6 个经典的即将被淘汰的技术或框架,虽然这些技术现在面临淘汰,但它们曾经也风光过,值得敬畏。
另外,虽然这些技术要被淘汰了,但不说明它们没有用了,它们依然在被运用,只是现在不是主流了。
最后,在大家的开发历程中,你都遇到过哪些曾经很风光,但现在即将被淘汰的技术呢?欢迎大家留言分享讨论~
关注公众号Java技术栈回复"面试"获取我整理的2020最全面试题及答案。
推荐去我的博客阅读更多:
2.Spring MVC、Spring Boot、Spring Cloud 系列教程
3.Maven、Git、Eclipse、Intellij IDEA 系列工具教程
觉得不错,别忘了点赞+转发哦!
盘点 6 个被淘汰的 Java 技术,它们都曾经风光过!的更多相关文章
- 2020年度综合大盘点:火爆IT业的7大Java技术,每一项都是大写的“牛逼”!
关注"Java这点事",每天与你分享Java技术.IT资讯 JAVA语言作为历史最为悠久的编程语言,从95年5月开始历经数十年依然盘踞在编程榜前三的位置,与它强大的功能和广泛的运用 ...
- Java技术开发程序员如果在2019年立足
2019年的互联网环境相对以往来说要更复杂一些,互联网领域也正在经历从消费互联网向产业互联网转型的阵痛期.其实不少公司从2018年开始已经在陆续进行结构化调整,这些调整中的重要内容就是岗位调整,而岗位 ...
- 向Java技术进军
前两天有个朋友要我帮忙写个打印机服务,要求能应用在.net .Dephi.和java程序上面.看了下需求不难也就串口操作,所以就在周未写了个Win32的动态库,对于一个曾经写MFC程序的.net程序员 ...
- 【JAVA】基于MVC架构Java技术荟萃案例演练
基于JAVA-MVC技术的顾客管理项目案例总结 作者 白宁超 2016年6月9日22:47:08 阅读前瞻:本文源于对javaweb相关技术和资料汇总,涉及大量javaweb基础技术诸如:Servle ...
- (转)如何学习Java技术?谈Java学习之路
51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...
- 从程序员到CTO的Java技术路线图 作者:zz563143188
在技术方面无论我们怎么学习,总感觉需要提升自已不知道自己处于什么水平了.但如果有清晰的指示图供参考还是非常不错的,这样我们清楚的知道我们大概处于那个阶段和水平. Java程序员 高级特性 反射.泛型. ...
- Java技术的特点
Java技术是一套完整的IT行业解决方案,其中包含了很多技术.最初是从解决家电设备联网通讯的方案发展起来的,其特点适用于Internet,于是在Internet广泛应用的环境下,迅速发展成为一种计算机 ...
- [原创]上海好买基金招高级Java技术经理/运维主管/高级无线客户端开发等职位(内推)
[原创]上海好买基金招高级Java技术经理/运维主管/高级无线客户端开发等职位(内推) 内部推荐职位 高级JAVA技术经理: 岗位职责: 负责项目管理(技术方向),按照产品开发流 ,带领研发团队,制定 ...
- Tomcat系列之Java技术详解
一.概述 1.前言 在前面几篇博客中,我们和大家说了负载均衡器服务器.Web服务器.反向代理服务器.缓存服务器,从这篇博客开始我们和大家说说应用程序服务器,对于上述内容不了解的博友可以去参考一下我们前 ...
随机推荐
- 关于word2vec的一些问题
CBOW v.s. skip-gram CBOW 上下文预测中心词,出现次数少的词会被平滑,对出现频繁的词有更高的准确率 skip-gram 中心词预测上下文,训练次数比CBOW多,表示罕见词更好 例 ...
- JavaWeb网上图书商城完整项目--过滤器解决中文乱码
我们知道,如果是POST请求,我们需要调用request.setCharacterEncoding(“utf-8”)方法来设计编码:如果是GET请求,我们需要自己手动来处理编码问题.如果我们使用了En ...
- ubuntu上面安装mysql
一.安装mysql 1. 安装需要使用root账号,如果不会设置root账号的请自行google.安装mysql过程中,需要设置mysql的root账号的密码,不要忽略了. sudo apt-get ...
- 【Vim命令】
命令 操作 :set nu 显示行号 i 编辑模式 :wq 修改并退出 :%s/a/b 把所有的a替换成b
- 主机Redis服务迁移到现有Docker Overlay环境
记录最后一次对中型2C企业级项目的容器化改造 hello, 好久不见,之前文章记录了一个实战的2C分布式项目的改造过程,结果如下: 其中Redis并未完成容器化改造(目前是主机单点),本文记录将Red ...
- Python 简明教程 --- 12,Python 字典
微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 代码写的越急,程序跑得越慢. -- Roy Carlson 目录 Python 字典是另一种非常实用 ...
- java使字符串的数字加一
/** * 字符串+1方法,该方法将其结尾的整数+1,适用于任何以整数结尾的字符串,不限格式,不限分隔符. * @author zxcvbnmzb * @param testStr 要+1的字符串 * ...
- Spring Aware介绍
读完这篇文章你将会收获到 Aware 的使用和介绍 BeanFactoryAware 的触发时机 ApplicationContextAware 的触发时机以及它通过扩展 BeanPostProces ...
- js小案例(排他案例)
描述:点击哪个,哪个就变蓝色,其余的都是粉色 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- Intellij idea2020永久激活,亲测可用!!!(持续更新)
DEA 2020 破解 IntelliJ IDEA 2020最新激活码(亲测有效,可激活至 2089 年,持续更新~) 申明:本教程 IntelliJ IDEA 破解补丁.激活码均收集于网络,请勿商用 ...