1. 程式人生 > >盤點 6 個被淘汰的 Java 技術,它們都曾經風光過!

盤點 6 個被淘汰的 Java 技術,它們都曾經風光過!

大家好啊,今天棧長給大家分享下我的開發歷程中,我知道的那些被淘汰的技術或者框架,有些我甚至都沒有用過,但我知道它曾經風光過。 廢話不多說,下面我要開始吹了…… #### 1、Swing 下面這個是用 swing 開發的: ![](https://img2020.cnblogs.com/other/1218593/202007/1218593-20200721141321596-1462565889.png) 圖來源網路,有沒有似曾相識的感覺?懂的自然懂! 棧長去年中秋也用過 swing: [這個中秋,我用 Java 畫了一個月餅!](https://mp.weixin.qq.com/s/8SxDT1v9LmXl9FuS3aNNiA) Swing 算是 Java 早期代替 AWT 的桌面應用 GUI 開發工具包,一個聽到就已經淘汰的技術,給我的感覺就是醜醜醜!現在與 AWT 一起在時間這個長河裡長眠。 如果 Java GUI 庫發展歷程分為三代,可以是: > AWT > SWING > JAVAFX 隨著 JavaFx 的釋出,加速 SWING 的被淘汰。下面這個是用 JavaFx 開發的: ![](https://img2020.cnblogs.com/other/1218593/202007/1218593-20200721141327860-669151720.png) > 圖來源:zhihu.com/question/54498643/answer/271632290 現在 JavaFx 也有十來年了,雖然這篇帖子也在說 JavaFx 淘汰了的,只是現在桌面應用不是主流吧,我也沒用過不敢亂說,JavaFx 在桌面應用開發應該還是有一席之地的。 #### 2、JSF > JSF:Java Server Faces JSF是一種用於構建 Java Web 應用程式的表現層框架,和 Struts 一樣性質的框架。 ![](https://img2020.cnblogs.com/other/1218593/202007/1218593-20200721141329079-914694063.png) > 圖來源: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客戶端來呼叫,並且是跨平臺的。 ![](https://img2020.cnblogs.com/other/1218593/202007/1218593-20200721141329916-2121939082.png) > 圖來源:oreilly.com 因為 EJB 過於複雜和笨重,除錯非常麻煩,現在都被輕量級的 RPC 框架(Dubbo)及輕量級 Restful 形式的分散式框架 (Spring Cloud) 替代了。關注微信公眾號Java技術棧在後臺回覆分散式可以獲取分散式架構系列教程。 #### 4、JSP JSP 全稱:Java Server Pages,是由早期的 Sun 公司釋出的一種動態網頁開發技術,即在 HTML 網頁程式碼中嵌入 JSP 標籤的 Java 程式碼實現動態網頁。 JSP 程式碼示例: ``` <% out.println("Hello, Java技術棧!"); %> ``` 這個示例只是簡單的呼叫 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 為什麼被淘汰?](https://mp.weixin.qq.com/s/yjvBtlZSGNiGi1eqjQq6Iw) #### 6、Memcached Redis 這幾年的大熱,現在已經替代 Memcached 成為快取技術的首要中介軟體,作為大廠的帶頭兵,在 BAT 裡面,Redis 也已經逐漸取代了 Memcached,廣泛使用 Redis 作為快取應用方案。 為什麼 Redis 能後來居上呢?關注微信公眾號Java技術棧在後臺回覆redis可以獲取 Redis 系列教程、 **1)速度更快** Memcached 使用的是多執行緒模型,既然是多執行緒,就會因為全域性加鎖而帶來效能損耗。而 Redis 使用的是單執行緒模型,沒有鎖競爭,速度非常快。 相關閱讀:[Redis 到底是單執行緒還是多執行緒?](https://mp.weixin.qq.com/s/X3e68ci6O9YPXbCAVaQc_w) **2)資料型別更豐富** Memcached 資料型別非常單一,只支援 String 資料型別,在業務實現上就非常有瓶頸。 而 Redis 支援 string(字串)、hash(雜湊)、list(列表)、set(集合)、zset(sorted set:有序集合) 等……豐富的資料型別可以讓 Redis 在業務上大展拳腳。 這也是 Redis 能代替 Memcached 最重要的原因之一。 相關閱讀:[Redis 的 8 大應用場景!](https://mp.weixin.qq.com/s/dM3sMeWvTswAjG8WwtL0Rw) 並且,Memcached 值最大上限為:1M,而 Redis 最大可以到:1GB。 **3)資料持久化** Memcached 不支援持久化,Redis 支援。 快取伺服器斷電後,Memcached 的資料是不能恢復的,而 Redis 可以將資料保久化在磁碟中,伺服器重啟的後可以載入再次使用,不會造成資料斷電丟失。 比如,有些資料是直接放在快取資料庫中的,其他地方可能沒有備份,如果丟失了,那可能會造成業務影響,這也是 Redis 非常有用的一個保障特性。 #### 總結 好了,今天棧長列舉了 6 個經典的即將被淘汰的技術或框架,雖然這些技術現在面臨淘汰,但它們曾經也風光過,值得敬畏。 另外,雖然這些技術要被淘汰了,但不說明它們沒有用了,它們依然在被運用,只是現在不是主流了。 最後,在大家的開發歷程中,你都遇到過哪些曾經很風光,但現在即將被淘汰的技術呢?歡迎大家留言分享討論~ 關注公眾號Java技術棧回覆"面試"獲取我整理的2020最全面試題及答案。 **推薦去我的部落格閱讀更多:** 1.[Java JVM、集合、多執行緒、新特性系列教程](http://www.javastack.cn/categories/Java/) 2.[Spring MVC、Spring Boot、Spring Cloud 系列教程](http://www.javastack.cn/categories/Spring/) 3.[Maven、Git、Eclipse、Intellij IDEA 系列工具教程](http://www.javastack.cn/categories/工具/) 4.[Java、後端、架構、阿里巴巴等大廠最新面試題](http://www.javastack.cn/categories/面試題/) 覺得不錯,別忘了點贊+轉發哦!