一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

可以不必再學(xué)習(xí)的Java知識?

小林coding ? 來源:小林coding ? 2023-02-16 09:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大家好,我是小林。很多學(xué) Java 的同學(xué)都會關(guān)心一個(gè)問題:有哪些過時(shí)的、可以不必再學(xué)習(xí)的 Java 知識?

針對這個(gè)問題,知乎上一位大佬給出了自己的見解,回答非常專業(yè),分享給大家。

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

注意,以下僅代表原作者本人的觀點(diǎn),大家如果有其他的想法,歡迎留言區(qū)分享。

我判斷哪些技術(shù)不用學(xué)習(xí)的依據(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)镸C框架。因此,與V(View)相關(guān)的一切模板技術(shù)都失去了學(xué)習(xí)的必要,其中當(dāng)然也包括JSP。所以,后來的Java學(xué)習(xí)者,我的建議是:

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

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)樗荢pring的親兒子,自然和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開始吧!”

Hibernate

Hibernate作為老牌的 ORM映射框架,功能非常強(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)镠ibernate的設(shè)計(jì)目標(biāo)是徹底的OR映射,徹底的隔離SQL語句。但必然會帶來一定的性能損失。大部分情況下,應(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就夠了?!?/p>

Servlet(要精通)

當(dāng)然,現(xiàn)在不會有任何公司,再用純粹的Servlet來實(shí)現(xiàn)整個(gè)Web應(yīng)用,而是轉(zhuǎn)向一些更高級的技術(shù)(例如各種 MVC 框架)。因此,會給人一種錯(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)確,會意即可):

54044604-ad48-11ed-bfe3-dac502259ad0.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í)。將來真要用到,再查也不遲。

審核編輯 :李倩

聲明:本文內(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)注

    20

    文章

    2987

    瀏覽量

    108190
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3504

    瀏覽量

    50194
  • MVC
    MVC
    +關(guān)注

    關(guān)注

    0

    文章

    73

    瀏覽量

    14101

原文標(biāo)題:一些已經(jīng)淘汰的 Java 技術(shù),別再學(xué)了!

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    掌握這六點(diǎn),原來學(xué)習(xí)數(shù)電和模電這么簡單!

    對于數(shù)電模電這兩門功課,在大學(xué)課堂中有的學(xué)校先數(shù)后模有的先模后數(shù),當(dāng)然也有的同時(shí)開設(shè)。其實(shí)愛好電子技術(shù)的小伙伴們,我給大家的建議是先學(xué)習(xí)模電再學(xué)習(xí)數(shù)電。這是有其中的緣由的,數(shù)電重點(diǎn)是對一些元器件
    的頭像 發(fā)表于 03-19 19:33 ?1438次閱讀
    掌握這六點(diǎn),原來<b class='flag-5'>學(xué)習(xí)</b>數(shù)電和模電這么簡單!

    Java的SPI機(jī)制詳解

    接口規(guī)范以及可以發(fā)現(xiàn)接口實(shí)現(xiàn)的機(jī)制,而不需要實(shí)現(xiàn)接口。 SPI機(jī)制在Java中應(yīng)用廣泛。例如:JDBC中的數(shù)據(jù)庫連接驅(qū)動使用SPI機(jī)制,只定義了數(shù)據(jù)庫連接接口的規(guī)范,而具體實(shí)現(xiàn)由各大數(shù)據(jù)庫廠商實(shí)現(xiàn),不同數(shù)據(jù)庫的實(shí)現(xiàn)不同,我們常用的mysql的驅(qū)動也實(shí)現(xiàn)了其接口規(guī)范,通過這
    的頭像 發(fā)表于 03-05 11:35 ?726次閱讀
    <b class='flag-5'>Java</b>的SPI機(jī)制詳解

    Java應(yīng)用OOM問題的排查過程

    導(dǎo)讀 本文記錄最近一例Java應(yīng)用OOM問題的排查過程,希望可以給遇到類似問題的同學(xué)提供參考。 前言:此文記錄最近一例Java應(yīng)用OOM問題的排查過程,希望可以給遇到類似問題的同學(xué)提供
    的頭像 發(fā)表于 02-12 11:15 ?612次閱讀
    <b class='flag-5'>Java</b>應(yīng)用OOM問題的排查過程

    如何快速學(xué)習(xí)硬件電路

    知識是理解電路運(yùn)作原理的基礎(chǔ),可以通過網(wǎng)絡(luò)上的教程、電子書籍等途徑學(xué)習(xí)。 其次,新手需要掌握實(shí)驗(yàn)技能。在學(xué)習(xí)過程中,可以購買一些便攜式的電路
    的頭像 發(fā)表于 01-20 11:11 ?1010次閱讀
    如何快速<b class='flag-5'>學(xué)習(xí)</b>硬件電路

    Java 23功能介紹

    Java 23 包含全新和更新的 Java 語言功能、核心 API 以及 JVM,同時(shí)適合新的 Java 開發(fā)者和高級開發(fā)者。從?IntelliJ IDEA 2024.2?開始已支持 Java
    的頭像 發(fā)表于 12-04 10:02 ?913次閱讀
    <b class='flag-5'>Java</b> 23功能介紹

    java知識-納秒

    作者:京東物流 崔冬冬 一、System.nanoTime() java中,有這么一個(gè)方法 System.nanoTime() ,你用過嗎? 二、與System.currentTimeMillis
    的頭像 發(fā)表于 11-26 11:11 ?593次閱讀

    Java集合API的改進(jìn)介紹

    解答這些問題。 我們將逐步學(xué)習(xí) Java 集合類的優(yōu)化過程,并按版本逐一對比分析。主要討論的焦點(diǎn)將包括 JDK 1.0、1.2、1.4、1.5、1.6、1.8、9、10、11 和 21 版本的 Java 集合功能
    的頭像 發(fā)表于 11-22 11:12 ?535次閱讀
    <b class='flag-5'>Java</b>集合API的改進(jìn)介紹

    Java中時(shí)間戳的使用

    Java中時(shí)間戳的使用
    的頭像 發(fā)表于 11-06 16:04 ?483次閱讀
    <b class='flag-5'>Java</b>中時(shí)間戳的使用

    嵌入式學(xué)習(xí)建議

    很多彎路,也會使你對嵌入式系統(tǒng)感到畏懼。等你軟件硬件基礎(chǔ)打好了,再學(xué)習(xí)就感到容易理解。實(shí)際上,許多嵌入式應(yīng)用并不需要操作系統(tǒng)。也可以根據(jù)實(shí)際項(xiàng)目需要,再學(xué)習(xí)特定的RTOS。不要被一些嵌入式實(shí)時(shí)操作系統(tǒng)
    發(fā)表于 10-22 11:41

    如何學(xué)習(xí)ARM?

    、寄存器、內(nèi)存管理單元(MMU)、中斷控制器等方面的知識。 3.學(xué)習(xí)編程語言和工具: 掌握一門與 ARM 處理器兼容的編程語言是必不可少的。C/C++ 是最常用的編程語言,可以使用它來編寫針對
    發(fā)表于 10-11 10:42

    java反編譯能拿到源碼嗎

    Java反編譯是一種將編譯后的Java字節(jié)碼(.class文件)轉(zhuǎn)換回Java源代碼的過程。雖然反編譯可以幫助理解代碼的邏輯和結(jié)構(gòu),但它并不總是能完美地還原原始源代碼。反編譯工具通常會
    的頭像 發(fā)表于 09-02 11:03 ?1722次閱讀

    java反編譯的代碼可以修改么

    Java反編譯是一種將編譯后的Java字節(jié)碼(.class文件)轉(zhuǎn)換回源代碼的過程。反編譯后的代碼可以進(jìn)行修改,但是需要注意,反編譯代碼的質(zhì)量和可讀性可能會受到原始編譯代碼的混淆、優(yōu)化等因素
    的頭像 發(fā)表于 09-02 11:00 ?1214次閱讀

    java子類可以繼承父類的什么

    Java是一種面向?qū)ο蟮木幊陶Z言,它支持繼承的概念。繼承是面向?qū)ο缶幊痰娜筇匦灾?,它允許一個(gè)類(稱為子類或派生類)繼承另一個(gè)類(稱為父類或基類)的屬性和方法。在Java中,子類可以繼承父類
    的頭像 發(fā)表于 08-20 11:02 ?2227次閱讀

    【轉(zhuǎn)型必看】Java到AI,程序員的逆襲秘籍,轉(zhuǎn)行人工智能不再是夢!

    人工智能,轉(zhuǎn)型的優(yōu)勢,薪資對比,以及轉(zhuǎn)型所需的知識學(xué)習(xí)路線等。01Java開發(fā)者能否轉(zhuǎn)型人工智能?答案是肯定的。Java作為一種廣泛使用的編程語言,擁有強(qiáng)大的生
    的頭像 發(fā)表于 07-31 14:42 ?2315次閱讀
    【轉(zhuǎn)型必看】<b class='flag-5'>Java</b>到AI,程序員的逆襲秘籍,轉(zhuǎn)行人工智能不再是夢!

    華納云:java web和java有什么區(qū)別java web和java有什么區(qū)別

    的平臺,Java可以用于開發(fā)桌面應(yīng)用程序、移動應(yīng)用程序、企業(yè)級應(yīng)用程序等。 – Java Web是Java語言在Web開發(fā)領(lǐng)域的應(yīng)用,它使用Java
    的頭像 發(fā)表于 07-16 13:35 ?1409次閱讀
    華納云:<b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么區(qū)別<b class='flag-5'>java</b> web和<b class='flag-5'>java</b>有什么區(qū)別