java swing 動態生成表格_6 個曾經牛逼哄哄的 Java 技術,你用過嗎?

大家好啊,今天給大家分享下我的開發歷程中,我知道的那些被淘汰的技術或者框架,有些我甚至都沒有用過,但我知道它曾經風光過。

bdcb304a549cf012b0696f04f9bff73c.png

廢話不多說,下面我要開始吹了……

1、Swing

下面這個是用 swing 開發的:

c985d2f1d5e047edd9189414bc25b26c.png

Swing 算是 Java 早期代替 AWT 的桌面應用 GUI 開發工具包,一個聽到就已經淘汰的技術,給我的感覺就是丑丑丑!現在與 AWT 一起在時間這個長河里長眠。

如果 Java GUI 庫發展歷程分為三代,可以是:

AWT?>?SWING?>?JAVAFX?

隨著 JavaFx 的發布,加速 SWING 的被淘汰。下面這個是用 JavaFx 開發的:

adfa0be7c8abf590abc3bed715925f5e.png

現在 JavaFx 也有十來年了,雖然這篇帖子也在說 JavaFx 淘汰了的,只是現在桌面應用不是主流吧,我也沒用過不敢亂說,JavaFx 在桌面應用開發應該還是有一席之地的。

2、JSF

JSF:Java Server Faces

JSF是一種用于構建 Java Web 應用程序的表現層框架,和 Struts 一樣性質的框架。

5d66bee99f66b7f6ace6f631cfbd9a09.png

國內用 JSF 的比較少,有也是老系統了,國外應該還有用 JSF 的,不過隨著 Spring MVC, Spring Boot 的橫空出世,JSF 應該也是過時的技術了。

3、EJB

EJB也是個神器,只見其影,未見其身。前些年,在網上各個面試題還有它的身影,現在估計很難見到了。

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

Sun公司發布的文檔中對 EJB 的定義是:EJB 是用于開發和部署多層結構的、分布式的、面向對象的 Java 應用系統的跨平臺的構件體系結構。

簡單來說,EJB就是部署分布式系統用的,就是把A程序放在服務器上,通過B客戶端來調用,并且是跨平臺的。

5a119092a01c90f22e63c66f6dca5841.png

因為 EJB 過于復雜和笨重,調試非常麻煩,現在都被輕量級的 RPC 框架(Dubbo)及輕量級 Restful 形式的分布式框架 (Spring Cloud) 替代了。關注微信公眾號Java技術棧在后臺回復分布式可以獲取分布式架構系列教程。

4、JSP

JSP 全稱:Java Server Pages,是由早期的 Sun 公司發布的一種動態網頁開發技術,即在 HTML 網頁代碼中嵌入 JSP 標簽的 Java 代碼實現動態網頁。

JSP 代碼示例:

??????????????微信公眾號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 為什么被淘汰?

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 個經典的即將被淘汰的技術或框架,雖然這些技術現在面臨淘汰,但它們曾經也風光過,值得敬畏。

另外,雖然這些技術要被淘汰了,但不說明它們沒有用了,它們依然在被運用,只是現在不是主流了。

最后,在大家的開發歷程中,你都遇到過哪些曾經很風光,但現在即將被淘汰的技術呢?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/392706.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/392706.shtml
英文地址,請注明出處:http://en.pswp.cn/news/392706.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如果您是JavaScript開發人員,為什么要進行增強現實-以及如何開始

by Evaristo Caraballo通過Evaristo Caraballo 如果您是JavaScript開發人員,為什么要進行增強現實-以及如何開始 (Why you should do Augmented Reality if you are a JavaScript developer — and how to start) If you are a JavaScript coder who is still late…

[Java 安全]加密算法

Base64編碼 算法簡述 定義 Base64內容傳送編碼是一種以任意8位字節序列組合的描述形式,這種形式不易被人直接識別。 Base64是一種很常見的編碼規范,其作用是將二進制序列轉換為人類可讀的ASCII字符序列,常用在需用通過文本協議(比…

hdu5299 Circles Game

題意是這樣。給出非常多圓,要么兩兩相離,要么包括,若刪掉一個圓,那被他包括的都要刪除,若某人沒有圓給他刪,那么他就贏了。 。。。知道樹上博弈的話。就非常easy。。。不知道的話。這確實是個神題…… 按半…

leetcode 1356. 根據數字二進制下 1 的數目排序(排序)

給你一個整數數組 arr 。請你將數組中的元素按照其二進制表示中數字 1 的數目升序排序。 如果存在多個數字二進制中 1 的數目相同,則必須將它們按照數值大小升序排列。 請你返回排序后的數組。 示例 1: 輸入:arr [0,1,2,3,4,5,6,7,8] 輸…

oracle java認證_如何通過Oracle的Java認證-開發人員實用指南

oracle java認證by javinpaul由javinpaul 如何通過Oracle的Java認證-開發人員實用指南 (How to Pass Oracle’s Java Certifications — a Practical Guide for Developers) A Java certification is highly regarded in the IT Industry and provides a Java developer with …

Oracle中exists與in的效率探討

in 與 exist 的語法比較: select from 數據表 t where t.x in (...) 括號內可以是符合t.x字段類型的值集合,如(1,2,3),但如果t.x是number類型的時候,似乎這樣的寫法會出問題;也可以是通 過另外的sele…

log日志輪轉--logrotate

服務器上的日志包括系統日志和服務日志每天都會產生n多log,好多人會自己寫腳本來進行日志的切割、壓縮等,而忽略了系統自帶的服務--logrotate。 簡介 logrotate是個十分有用的工具,它可以自動對日志進行截斷(或輪循)、壓縮以及刪除…

2個字段并在一次插入一個字段里面_elasticsearch外用與內觀(二)-當插入文檔時,elasticsearch都在做什么...

Previous: elasticsearch外用與內觀(一)-常用功能與使用方法 在了解了es的基本用法之后,我們再來看看當插入文檔數據時,elasticsearch都在做什么。首先,es的索引只是一個邏輯概念,實際上是由一個個物理分片組成的,每個分片就是一個…

學習Spring Data JPA

簡介 Spring Data 是spring的一個子項目,在官網上是這樣解釋的: Spring Data 是為數據訪問提供一種熟悉且一致的基于Spring的編程模型,同時仍然保留底層數據存儲的特??殊特性。它可以輕松使用數據訪問技術,可以訪問關系和非關系…

azure多功能成像好用嗎_Azure持久功能簡介:模式和最佳實踐

azure多功能成像好用嗎Authored with Steef-Jan Wiggers at Microsoft Azure由Microsoft Azure的Steef-Jan Wiggers撰寫 With Durable Functions, you can program a workflow and instantiate tasks in sequential or parallel order, or you can build a watch or support a…

leetcode 327. 區間和的個數(treemap)

給定一個整數數組 nums,返回區間和在 [lower, upper] 之間的個數,包含 lower 和 upper。 區間和 S(i, j) 表示在 nums 中,位置從 i 到 j 的元素之和,包含 i 和 j (i ≤ j)。 說明: 最直觀的算法復雜度是 O(n2) ,請在此…

常用的工具函數

得到兩個數組的并集, 兩個數組的元素為數值或字符串//tools.js export const getUnion (arr1, arr2) > {return Array.from(new Set([...arr1, ...arr2])) }//調用頁面 import { getUnion } from /libs/toolsthis.getUnion getUnion([1,2,3,5],[1,4,6]) //(6) [1, 2, 3,…

git 常用commands(轉)

常用 Git 命令清單 作者: 阮一峰 日期: 2015年12月 9日 我每天使用 Git ,但是很多命令記不住。 一般來說,日常使用只要記住下圖6個命令,就可以了。但是熟練使用,恐怕要記住60~100個命令。 下面是…

Win2003磁盤分區調整

引用如下: 可能大家都知道,在Windows Server 2003下,普通版本的分區魔術師是無法運行的,而Windows內置的命令行工具Diskpart則能勝任分區魔術師的大部分工作,它的功能非常強大。輸入Diskpart后,將顯示如圖所…

檢查集群狀態命令_輕松管理Kubernetes集群的7個工具

Kubernetes正在不斷加快在云原生環境的應用,但如何以統一、安全的方式對運行于任何地方的Kubernetes集群進行管理面臨著挑戰,而有效的管理工具能夠大大降低管理的難度。K9sk9s是基于終端的資源儀表板。它只有一個命令行界面。無論在Kubernetes儀表板Web …

leetcode 122. 買賣股票的最佳時機 II(貪心算法)

給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 設計一個算法來計算你所能獲取的最大利潤。你可以盡可能地完成更多的交易(多次買賣一支股票)。 注意:你不能同時參與多筆交易(你必須在再次購買前出售掉…

前端繪制繪制圖表_繪制圖表(第2頁):JavaScript圖表庫的比較

前端繪制繪制圖表by Mandi Cai蔡曼迪 繪制圖表(第2頁):JavaScript圖表庫的比較 (Charting the waters (pt. 2): a comparison of JavaScript charting libraries) 深入研究D3.js,Dygraphs,Chart.js和Google Charts (A deep dive into D3.js,…

python 3.6.5 pip_在Windows 10 + Python 3.6.5 中用 pip 安裝最新版 TensorFlow v1.8 for GPU

聲明什么cuDNN之類的安裝,應該是毫無難度的,按照官網的教程來即可,除非。。。像我一樣踩了狗屎運。咳咳,這些問題不是本文的關鍵。本文的關鍵是解決pip安裝tensorflow gpu版的問題。安裝環境操作系統:64位的Windows 10…

模板進階——模板實參推斷

一、關鍵點 模板實參:模板參數T的實例類型,如int、string等 模板實參推斷:從函數實參來確定模板實參的過程 模板類型參數與類型轉換:const的轉換、數組/函數到指針的轉換 顯式模板實參:當模板參數類型并未出現在函數參…

leetcode 973. 最接近原點的 K 個點(排序)

我們有一個由平面上的點組成的列表 points。需要從中找出 K 個距離原點 (0, 0) 最近的點。 (這里,平面上兩點之間的距離是歐幾里德距離。) 你可以按任何順序返回答案。除了點坐標的順序之外,答案確保是唯一的。 示例 1&#xf…