0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

當(dāng)年很流行,現(xiàn)在已經(jīng)淘汰的Java技術(shù)

jf_ro2CN3Fa ? 來源:芋道源碼 ? 2023-09-10 11:18 ? 次閱讀

最近這段時(shí)間收到了一些讀者的私信,問我某個(gè)技術(shù)要不要學(xué),還有一些在國外的同學(xué)竟然對 Java 圖形化很感興趣,還想找這方面的工作。

比較忙,一直沒抽出時(shí)間去回答這類問題,剛好看到我關(guān)注的一位大佬回答過,這里分享一下,希望對你能有幫助。

下面是正文。

原文鏈接:https://www.zhihu.com/question/305924723/answer/557800752

我接觸 Java 已近 20 年了,見證了許多 Java 技術(shù)變遷,包括:

JavaEE 框架,從百家混戰(zhàn)到現(xiàn)在 Spring 基本一統(tǒng)天下。

Web 開發(fā),從標(biāo)配的 SSH 到現(xiàn)在 SpirngMVC + MyBatis 組合。

IDE,從當(dāng)年如火如荼的 JBuilder 到 Eclipse,再到更好用的 IDEA。

而本文,我主要談一下那些 Java 知識(shí)“已經(jīng)過時(shí)”,沒必要繼續(xù)學(xué)習(xí)了。您也可以把本文看做上篇文章的補(bǔ)充。

我判斷的依據(jù)主要有以下幾點(diǎn):

實(shí)際開發(fā)能否用到?

是否有助于加深對技術(shù)的理解?

對面試是否有用?

JSP

JSP 在實(shí)際開發(fā)中,主要是作為 MVC 模型中的 V(View)層出現(xiàn)的。當(dāng)然,View 層的渲染技術(shù)除了 JSP,還有 FreeMaker、Velocity 等。

JSP 作為頁面模板,在后端通過 MVC 框架渲染成 HMTL,然后再發(fā)送到客戶端(例如瀏覽器)來呈現(xiàn)。這也就是我們常說的“前后端不分離”,“混合式”開發(fā)。

而當(dāng)前,包括我所在的公司,以及大部分互聯(lián)網(wǎng)公司。要么已經(jīng)拋棄這種模式,要么正在拋棄的路上,而轉(zhuǎn)向徹底的“前后端分離”。

在“前后端分離”模式下,后端只負(fù)責(zé)提供服務(wù)接口(例如 REST),而前端(例如 HTML5)通過接口發(fā)送/獲取,呈現(xiàn)數(shù)據(jù)(例如 JSON 格式)。

這樣,在后端,原來的 MVC 框架,某種意義上已經(jīng)演變?yōu)?MC 框架。因此,與 V(View)相關(guān)的一切模板技術(shù)都失去了學(xué)習(xí)的必要,其中當(dāng)然也包括 JSP。所以,后來的 Java 學(xué)習(xí)者,我的建議是:

“_完全可以放棄對 JSP 的學(xué)習(xí)_?!?/p>

基于 Spring Boot + MyBatis Plus + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

項(xiàng)目地址:https://github.com/YunaiV/ruoyi-vue-pro

視頻教程:https://doc.iocoder.cn/video/

Struts

在 Java 后端開發(fā)中,MVC 模型還是主流。而 Struts 作為一個(gè) MVC 框架,單從技術(shù)上來說,還是很優(yōu)秀的。

但是,現(xiàn)在 Spring 實(shí)在是太強(qiáng)勢了,越來越成為 Java 開發(fā)中的“一站式”工具包,其中的一個(gè)利器就是 Spring MVC。

望名知意,Spring MVC 也是一個(gè) MVC 框架。而且因?yàn)樗?Spring 的親兒子,自然和 Spring 契合的非常完美。

同時(shí),在設(shè)計(jì)之初,Spring MVC 就參照了其他 MVC 框架的優(yōu)缺點(diǎn)(包括 Struts),所以用起來非常爽。因此,在 MVC 框架領(lǐng)域,Spring MVC 大有一統(tǒng)天下的趨勢。

因此現(xiàn)在,很多公司,老的 Struts 項(xiàng)目還在維護(hù)。但新的項(xiàng)目開發(fā),更多轉(zhuǎn)向了 Spring MVC。因此,如果你是 Java 新手,正在學(xué)習(xí)中,我的建議是:

“**_不要再學(xué)習(xí) Struts 了,從 Spring MVC 開始吧!** _”

基于 Spring Cloud Alibaba + Gateway + Nacos + RocketMQ + Vue & Element 實(shí)現(xiàn)的后臺(tái)管理系統(tǒng) + 用戶小程序,支持 RBAC 動(dòng)態(tài)權(quán)限、多租戶、數(shù)據(jù)權(quán)限、工作流、三方登錄、支付、短信、商城等功能

項(xiàng)目地址:https://github.com/YunaiV/yudao-cloud

視頻教程:https://doc.iocoder.cn/video/

Hibernate

Hibernate 作為老牌的 OR 映射框架,功能非常強(qiáng)大,涵蓋面非常廣。但這既是它的優(yōu)點(diǎn),同時(shí)也成為它的“負(fù)擔(dān)”,是開發(fā)人員“不能承受之重”。

Hibernate 的設(shè)計(jì)初衷,是為了最大程度的解放程序員,完全隔離數(shù)據(jù)庫,實(shí)現(xiàn)徹底的 OR 映射。程序員甚至可以不寫一行 SQL 語句,單通過配置就能實(shí)現(xiàn)對數(shù)據(jù)庫的操作。

當(dāng)然,為了實(shí)現(xiàn)這個(gè)目標(biāo),Hibernate 也設(shè)計(jì)的非常復(fù)雜、非常精巧。就不可避免的帶來以下副作用:

學(xué)習(xí)成本高

配置復(fù)雜

調(diào)優(yōu)困難

前兩點(diǎn)不難理解,單說“調(diào)優(yōu)困難”。

因?yàn)?Hibernate 的設(shè)計(jì)目標(biāo)是徹底的 OR 映射,徹底的隔離 SQL 語句。但必然會(huì)帶來一定的性能損失。大部分情況下,應(yīng)用如果對性能不敏感,Hibernate 也沒問題。但應(yīng)用一旦對性能敏感,有 SQL 級別調(diào)優(yōu)的需求,Hibernate 的優(yōu)點(diǎn)反而成為缺點(diǎn)。

雖然 Hibernate 也支持 SQL 級別的調(diào)優(yōu),但因?yàn)榭蚣茉O(shè)計(jì)的過于復(fù)雜和精巧,這就需要開發(fā)人員對 Hibernate 理解的非常透徹,這就帶來了更高的學(xué)習(xí)成本。

而現(xiàn)在最流行的 MyBatis,作為一個(gè)“混合式”,輕量級 OR 映射框架,既繼承了 Hibernate 的優(yōu)點(diǎn),同時(shí)也吸取了他的教訓(xùn)。在支持配置的同時(shí),又能接觸 SQL,從而帶來了更多靈活性(包括調(diào)試、優(yōu)化)。

當(dāng)前,在實(shí)際開發(fā)中,Hibernate 使用的越來越少了。大家更偏愛 MyBatis 這種輕量級框架。所以,對后來學(xué)習(xí)者,我的建議是:

“_不需要再學(xué)習(xí) Hibernate 了,學(xué) MyBatis 就夠了_。”

Servlet(要精通)

當(dāng)然,現(xiàn)在不會(huì)有任何公司,再用純粹的 Servlet 來時(shí)實(shí)現(xiàn)整個(gè) Web 應(yīng)用,而是轉(zhuǎn)向一些更高級的技術(shù)(例如各種 MVC 框架)。因此,會(huì)給人一種錯(cuò)覺:Servlet 已經(jīng)過時(shí),后來者就不需要再學(xué)習(xí)了。

在這里,我可以非常負(fù)責(zé)任的說:這種觀點(diǎn)是極端錯(cuò)誤,極端不負(fù)責(zé)任的。

Servlet 不僅要學(xué),而且要學(xué)深,學(xué)透。

當(dāng)前,Servlet 雖然不再是一個(gè)主流 web 開發(fā)技術(shù),但依然是 Java Web 開發(fā)技術(shù)的基礎(chǔ),是 Java Web 容器的基石,是行業(yè)標(biāo)準(zhǔn)。而現(xiàn)在流行的各種 MVC 框架(包括 SpringMVC),在最底層,還是以 Servlet 為基礎(chǔ)的。

為此,我畫了一個(gè)簡單的圖(不準(zhǔn)確,會(huì)意即可):

1ad962c6-4f80-11ee-a25d-92fbcf53809c.jpg

所以,如果你想要徹底掌握某個(gè) MVC 框架,則必須徹底理解 Servlet。

而且,Servlet 作為一個(gè)基礎(chǔ)設(shè)施。精通它,不僅有助于理解各種 MVC 框架。即使 Servlet 本身,也有很多實(shí)用價(jià)值。

如果你深刻理解了 Servlet 的生命周期,就可以在底層做很多事情。譬如在 Request 進(jìn)來的時(shí)候,進(jìn)行攔截,進(jìn)行權(quán)限的判定。也可以在 Response 發(fā)出的時(shí)候,進(jìn)行攔截,統(tǒng)一檢查、統(tǒng)一附加。

所以,如果你正在學(xué)習(xí) Java,對 Servlet,我的建議是:

“**Servlet 不僅要學(xué),而且要學(xué)深,學(xué)透** ?!?/p>

其他

目前在國內(nèi),Java 更多是作為 web 后端技術(shù)出現(xiàn)的。因此在實(shí)際學(xué)習(xí)中,很多技術(shù)就不符合“國情”,學(xué)習(xí)的現(xiàn)實(shí)意義不大。下面我就簡單列舉下。

1.Applet

作為頁面插件技術(shù),不用多說,連 flash 都快被淘汰了,更無論從未流行的 applet。

2.Swing

作為桌面 UI 框架。且不說本身設(shè)計(jì)的咋樣。現(xiàn)實(shí)開發(fā)中,我接觸的桌面應(yīng)用,要么用 C++(例如 MFC),要么用 C#(Winform、WPF)。所以,Swing 就沒有學(xué)習(xí)的必要了。

3.JDBC

作為較低層的數(shù)據(jù)庫基礎(chǔ)設(shè)施,JDBC 被很多框架(例如 MyBatis)支持。但在實(shí)際開發(fā)中,程序員即使不了解也無大礙。因此,雖然我不能建議你放棄 JDBC 學(xué)習(xí),但如果你時(shí)間有限,完全可以把它的優(yōu)先級排低一點(diǎn)。

4.XML

XML 現(xiàn)在還在廣泛應(yīng)用。但作為一個(gè) web 數(shù)據(jù)傳輸格式,正在逐漸被 JSON 替代。所以,對 Java 后端學(xué)習(xí)來說,XML 簡單了解即可。至于龐雜的 XML 操作 API(例如 XPath),完全不必學(xué)習(xí)。將來真要用到,再查也不遲。

最后

上面是我的一家之言,肯定有武斷之處,見諒!

最后,祝你學(xué)習(xí)順利。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2943

    瀏覽量

    104089
  • SQL
    SQL
    +關(guān)注

    關(guān)注

    1

    文章

    750

    瀏覽量

    43900
  • Servlet
    +關(guān)注

    關(guān)注

    0

    文章

    18

    瀏覽量

    7878

原文標(biāo)題:當(dāng)年很流行,現(xiàn)在已經(jīng)淘汰的Java技術(shù),請不要在繼續(xù)學(xué)了?。。?/p>

文章出處:【微信號:芋道源碼,微信公眾號:芋道源碼】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    已經(jīng)安裝了Java,且依然提示安裝Java是為什么?

    已經(jīng)在機(jī)器上安裝了最新版的 Java 10,打開 Cube 卻得到要求安裝 Java 1.7.0_45 的提示。何解?Eclipse CDT 依賴 Java,不可卸載重裝。
    發(fā)表于 04-26 06:23

    [原創(chuàng)]學(xué)習(xí)java的流程

    、首先要學(xué)習(xí)java的基礎(chǔ)知識(shí)。不要被新技術(shù)迷惑,所謂萬變不離其宗,新技術(shù)都是基于java的基礎(chǔ)之上,如果基礎(chǔ)不扎實(shí),對于這些新技術(shù)的理解也
    發(fā)表于 11-06 12:38

    Java的產(chǎn)生與特點(diǎn)

    人員的一種時(shí)尚。雖然新聞界的報(bào)導(dǎo)有些言過其實(shí),但Java作為軟件開發(fā)的一種革命性的技術(shù),其地位已被確立,這表現(xiàn)在以下幾個(gè)方面:1.計(jì)算機(jī)產(chǎn)業(yè)的許多大公司購買了Java的許可證,包括IB
    發(fā)表于 12-14 20:28

    [分享]Java入門速成視頻教程--完整全面

    Java入門速成視頻教程--完整全面 給各位朋友強(qiáng)力推薦一個(gè)Java入門速成視頻教程,它是由從基礎(chǔ)到入門,再到全面掌握,是一個(gè)全新的J
    發(fā)表于 02-22 15:11

    現(xiàn)在流行的電路板設(shè)計(jì)軟件。

    請問各位大俠 現(xiàn)在流行的電路板設(shè)計(jì)軟件是什么。allegeopadsprotel還是。。。
    發(fā)表于 11-05 11:57

    女生學(xué)習(xí)java可以更加優(yōu)秀

    市場份額已經(jīng)達(dá)到80.1%,全球采用android系統(tǒng)的設(shè)備數(shù)量已達(dá)到10億臺(tái),可以說android現(xiàn)在占有市場的主導(dǎo)地位,很多初學(xué)者也許不知道,android是基于java開發(fā)的,所以很多核心應(yīng)用程序
    發(fā)表于 01-09 15:31

    Java工程師必須掌握的技術(shù)有哪些?

    很多人都說編程語言,只要掌握其中20%的經(jīng)典技術(shù),就可以在職場上混的游刃有余,作為一名Java程序員,要想在Java領(lǐng)域做到游刃有余,這些技術(shù)是必須要掌握的。1.
    發(fā)表于 02-09 16:18

    【轉(zhuǎn)】單片機(jī)技術(shù)會(huì)被淘汰嗎?

    ,STC單片機(jī)已經(jīng)可以只用一根USB線就把程序燒錄到單片機(jī)里面了,是不是非常的方便。二、技術(shù)越進(jìn)步、底層越重要現(xiàn)在電子技術(shù)發(fā)展越來越快,近年來STM32單片機(jī)不但在高端智能控制領(lǐng)域發(fā)力
    發(fā)表于 04-18 21:35

    學(xué)好java能干什么

    JSP+Servlet+JavaBean,一直以來都相當(dāng)流行?! ?、學(xué)習(xí)Java可以做游戲  或者你不知道,在以前諾基亞還很流行的時(shí)候,你玩的手機(jī)游戲有90%以上都是Java開發(fā)的。
    發(fā)表于 06-28 11:45

    流行的編程語言java,python

    世界上最大的編程相關(guān)書籍出版商Packt Publishing進(jìn)行的市場研究顯示,Java和Python是當(dāng)今最流行的編程語言,Java流行程度位居第3。 該公司通過調(diào)查11000受訪
    發(fā)表于 09-26 10:22 ?0次下載
    最<b class='flag-5'>流行</b>的編程語言<b class='flag-5'>java</b>,python

    java現(xiàn)在流行的工具

    流行的工具并不一定是最好的,對于開發(fā)來說,什么是最好的,取決于使用場景。然而,當(dāng)選擇工具時(shí),流行程度是不可忽視的一個(gè)重要因素,并不是因?yàn)楣ぞ叩?b class='flag-5'>流行增加了其價(jià)值,而是因?yàn)閺V泛使用的社區(qū)帶來
    發(fā)表于 09-30 16:42 ?0次下載

    Python方向 JS 比 Java流行

    根據(jù) Hacker News 招聘趨勢排名,公司對掌握 Python 技能的人員越來越干興趣,其次是 JavaScript 和 Golang。 最有趣的是,Golang 在某一時(shí)期似乎已經(jīng)超越了 Java流行程度,不過這一趨
    發(fā)表于 04-23 17:05 ?1780次閱讀
    Python方向 JS 比 <b class='flag-5'>Java</b>更<b class='flag-5'>流行</b>

    Java程序員學(xué)習(xí)的6個(gè)小技巧

    知識(shí)改變命運(yùn),對于Java程序員來說,技術(shù)不斷更新,只有及時(shí)充電,才能不被市場淘汰。今天為大家分享Java程序員學(xué)習(xí)的6個(gè)小技巧。
    的頭像 發(fā)表于 02-11 16:11 ?2385次閱讀

    Java的發(fā)展歷程是怎樣的

    Java的更新速度是很快的,每隔一段時(shí)間都會(huì)進(jìn)行一次版本迭代,來適應(yīng)新技術(shù)的發(fā)展趨勢,學(xué)Java的程序員遍布全世界,慶幸我也是茫茫Java
    發(fā)表于 01-06 14:02 ?743次閱讀

    學(xué)習(xí)Java有前途嗎?Java崗位飽和了嗎?這篇文告訴你!

    現(xiàn)在學(xué)Java有前途嗎?Java崗位飽和了嗎?學(xué)Java前途是有的,Java流行的網(wǎng)絡(luò)編程語言之
    的頭像 發(fā)表于 10-23 16:25 ?2888次閱讀