12

盘点 6 个被淘汰的 Java 技术,它们都曾经风光过!

 3 years ago
source link: http://developer.51cto.com/art/202007/621583.htm
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

大家好啊,今天栈长给大家分享下我的开发历程中,我知道的那些被淘汰的技术或者框架,有些我甚至都没有用过,但我知道它曾经风光过。

r6zeAve.jpg!web

废话不多说,下面我要开始吹了……

1、Swing

下面这个是用 swing 开发的:

IzmeYfU.png!web

图来源网络,有没有似曾相识的感觉?懂的自然懂!

栈长去年中秋也用过 swing:

这个中秋,我用 Java 画了一个月饼!

Swing 算是 Java 早期代替 AWT 的桌面应用 GUI 开发工具包,一个听到就已经淘汰的技术,给我的感觉就是丑丑丑!现在与 AWT 一起在时间这个长河里长眠。

如果 Java GUI 库发展历程分为三代,可以是:

AWT > SWING > JAVAFX 

随着 JavaFx 的发布,加速 SWING 的被淘汰。下面这个是用 JavaFx 开发的:

VbIRNfU.png!web

图来源:zhihu.com/question/54498643/answer/271632290

现在 JavaFx 也有十来年了,虽然这篇帖子也在说 JavaFx 淘汰了的,只是现在桌面应用不是主流吧,我也没用过不敢乱说,JavaFx 在桌面应用开发应该还是有一席之地的。

2、JSF

JSF:Java Server Faces

JSF是一种用于构建 Java Web 应用程序的表现层框架,和 Struts 一样性质的框架。

VRFruyy.png!web

图来源:https://javabeat.net/jsf-2/

国内用 JSF 的比较少,有也是老系统了,国外应该还有用 JSF 的,不过随着 Spring MVC, Spring Boot 的横空出世,JSF 应该也是过时的技术了。

3、EJB

EJB也是个神器,只见其影,未见其身。前些年,在网上各个面试题还有它的身影,现在估计很难见到了。

EJB:Enterprise Java Beans,即:企业Java Beans

Sun公司发布的文档中对 EJB 的定义是:EJB 是用于开发和部署多层结构的、分布式的、面向对象的 Java 应用系统的跨平台的构件体系结构。

简单来说,EJB就是部署分布式系统用的,就是把A程序放在服务器上,通过B客户端来调用,并且是跨平台的。

EviIZju.png!web

图来源: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 个经典的即将被淘汰的技术或框架,虽然这些技术现在面临淘汰,但它们曾经也风光过,值得敬畏。

另外,虽然这些技术要被淘汰了,但不说明它们没有用了,它们依然在被运用,只是现在不是主流了。

最后,在大家的开发历程中,你都遇到过哪些曾经很风光,但现在即将被淘汰的技术呢?


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK