2022-04-08

對(duì)java編成語(yǔ)言的淺解

對(duì)于Java技術(shù)專家而言廉邑,他們會(huì)采取非常簡(jiǎn)單的方法,譬如使用SDKMAN慨畸。

SDKMAN還支持安裝其他各種工具莱坎,如Maven、Gradle寸士、JBang等型奥。如果你想以學(xué)習(xí)為目的使用Java,我建議你使用JBang碉京。

以上內(nèi)容部分由小紅書(shū)www.xiaohongshutuiguang.cn)轉(zhuǎn)載提供

雖然大多數(shù)的Java開(kāi)發(fā)者都使用功能全面且強(qiáng)大的IDE厢汹,如Intellij IDEA、Eclipse或NetBeans谐宙,但你也可以用VS Code來(lái)開(kāi)發(fā)Java程序烫葬。

核心標(biāo)準(zhǔn)庫(kù)不夠用

通過(guò)調(diào)研,我們還發(fā)現(xiàn)了以下一些問(wèn)題:

一個(gè)常見(jiàn)的問(wèn)題是Java的核心標(biāo)準(zhǔn)庫(kù)不夠用凡蜻,許多任務(wù)需要一些外部庫(kù)搭综,這也是事實(shí)。

沒(méi)有內(nèi)置的測(cè)試庫(kù)划栓、JSON(取消)編組支持兑巾,等等。

雖然Java NIO是一個(gè)很大的進(jìn)步忠荞,但與其他語(yǔ)言相比蒋歌,Java中的文件I/O仍然是復(fù)雜而冗長(zhǎng)的。

沒(méi)有內(nèi)置的(類似Kotlin)對(duì)不可變數(shù)據(jù)結(jié)構(gòu)的支持委煤。

我的觀點(diǎn)

Java有很好的標(biāo)準(zhǔn)庫(kù)堂油,如Collections、Streams碧绞、Java NIO等府框。

使用文件I/O、JDBC等仍然感覺(jué)非常低級(jí)和冗長(zhǎng)讥邻。

有很好的第三方庫(kù)迫靖,如commons-lang、commons-io兴使、Jackson系宜、Gson、Vavr鲫惶、Eclipse Collections來(lái)執(zhí)行這些任務(wù)蜈首。

在我看來(lái)实抡,添加第三方庫(kù)并不是一個(gè)大問(wèn)題欠母。

挑戰(zhàn)在于欢策,當(dāng)有太多的選擇時(shí),新手們會(huì)感到困惑赏淌,不知道該選哪一個(gè)踩寇。

最啰嗦的語(yǔ)言Java

Java是最啰嗦的語(yǔ)言,這是對(duì)Java最常見(jiàn)的評(píng)論六水。

(這只是表明你還沒(méi)有使用過(guò)Go語(yǔ)言)

我的觀點(diǎn)

人們討厭setters俺孙、getters等,但我不認(rèn)為這有什么不好掷贾。因?yàn)榭梢杂肔ombok和Records來(lái)避免編寫模板睛榄。通過(guò)使用正確的庫(kù),可以編寫出不那么冗長(zhǎng)的Java代碼想帅。

事實(shí)上场靴,我認(rèn)為Java在冗長(zhǎng)和簡(jiǎn)潔之間取得了適當(dāng)?shù)钠胶狻Mǔ8圩迹贘ava的企業(yè)應(yīng)用程序會(huì)被維護(hù)很多年旨剥,而被認(rèn)為冗長(zhǎng)的東西實(shí)際上會(huì)幫助人們理解它。

其中一個(gè)回答說(shuō)明了一切浅缸。

任何時(shí)候轨帜,我都會(huì)選擇傳統(tǒng)的Java而不是傳統(tǒng)的Node.js。

復(fù)雜的 "企業(yè)級(jí)"產(chǎn)品

另一個(gè)常見(jiàn)的話題是關(guān)于復(fù)雜的企業(yè)級(jí)產(chǎn)品衩椒,如ClassLoaders蚌父、JNDI、OSGI毛萌、JMX梢什、Reflection、AOP朝聋、ByteWeaving嗡午、Dynamic Proxies、應(yīng)用服務(wù)器等冀痕。

我的觀點(diǎn)

十年前荔睹,我在EJB 2中使用EAR打包,我知道處理ClassLoader的問(wèn)題是多么令人沮喪言蛇。另外僻他,我在JBoss/WildFly等應(yīng)用服務(wù)器中部署Spring應(yīng)用時(shí),也有處理類加載器問(wèn)題的經(jīng)驗(yàn)腊尚。

幸運(yùn)的是吨拗,在過(guò)去的7、8年里,我沒(méi)有再使用EJB劝篷、OSGI哨鸭、JMX、應(yīng)用服務(wù)器娇妓。在現(xiàn)代的Java世界中像鸡,應(yīng)用程序被構(gòu)建成fat jars,而框架則負(fù)責(zé)做AOP哈恰、ByteWeaving只估、動(dòng)態(tài)代理等。

除非你還在開(kāi)發(fā)傳統(tǒng)的應(yīng)用程序着绷,否則我認(rèn)為你不會(huì)用現(xiàn)代Java技術(shù)棧來(lái)處理這些問(wèn)題蛔钙。

庫(kù)作者處理的問(wèn)題越來(lái)越復(fù)雜

與典型的商業(yè)應(yīng)用開(kāi)發(fā)者相比,高級(jí)用戶荠医、庫(kù)作者要處理的復(fù)雜性達(dá)到了全新的高度夸楣。

一些高級(jí)用戶提到關(guān)于Java的挑戰(zhàn)是:

類的加載

類型擦除

功能性接口的異常語(yǔ)義

反射

原理

空值

默認(rèn)可變性

多線程

通用平等

因?yàn)槲覜](méi)有建立過(guò)任何復(fù)雜的庫(kù),所以我沒(méi)有太多的話語(yǔ)權(quán)子漩。

除此以外豫喧,還有一些問(wèn)題。

微服務(wù)的高內(nèi)存占用率

Streaming arch分層在一個(gè)老化的生態(tài)系統(tǒng)上幢泼,其后果不甚明了

太多的抽象性

雖然現(xiàn)代框架使專業(yè)開(kāi)發(fā)者很容易構(gòu)建應(yīng)用程序紧显,但對(duì)于新手來(lái)說(shuō)卻變得很困難。大多數(shù)的框架都是非常抽象的缕棵。當(dāng)他們?cè)噲D多了解一些東西的時(shí)候孵班,就像剝洋蔥一樣,發(fā)現(xiàn)需要了解的東西無(wú)窮無(wú)盡招驴。

非本地的FP支持

雖然從Java 8開(kāi)始篙程,Java增加了一些函數(shù)式編程支持,但Java絕對(duì)不是作為函數(shù)式編程語(yǔ)言設(shè)計(jì)的核心别厘。有些人提到他們可以用FP構(gòu)建軟件虱饿,比用OOP好用得多。你也可以在Java中應(yīng)用一些FP的概念触趴,如純函數(shù)氮发、不變性,但不會(huì)像Clojure或Haskell等FP語(yǔ)言那樣自然冗懦。

以下內(nèi)容由 小紅書(shū)推廣www.xiaohongshutuiguang.cn)轉(zhuǎn)載提供

其他原因

使用舊版應(yīng)用程序的幾率更高

糟糕的面試經(jīng)歷

“x語(yǔ)言很復(fù)雜”不可信

我之所以問(wèn) "為什么你認(rèn)為Java很復(fù)雜爽冕?"是為了了解別人的觀點(diǎn)。雖然我不同意一些觀點(diǎn)披蕉,而且有些事情對(duì)我來(lái)說(shuō)不是什么大問(wèn)題颈畸,但這有助于我理解其他人的想法乌奇。

在我看來(lái),任何語(yǔ)言眯娱、框架和庫(kù)都是為了解決一個(gè)主要問(wèn)題而創(chuàng)建的礁苗,在這個(gè)過(guò)程中,它可能也會(huì)有一些非主要的功能困乒。Java被設(shè)計(jì)成面向?qū)ο蟮恼Z(yǔ)言寂屏,如果你想讓它成為一種功能編程語(yǔ)言贰谣,它就沒(méi)有Clojure或Haskell那么好娜搂。每種編程語(yǔ)言都有它的利基領(lǐng)域,比如Python用于機(jī)器學(xué)習(xí)吱抚,Go和Rust用于系統(tǒng)編程百宇,Java和Node.js用于企業(yè)應(yīng)用開(kāi)發(fā)等等。

Java的優(yōu)勢(shì)在于建立大型企業(yè)應(yīng)用程序秘豹,而不是在控制臺(tái)中打印 “Hello World”!!!携御。Java生態(tài)系統(tǒng)的發(fā)展是為了滿足企業(yè)的需求,并提高開(kāi)發(fā)人員的生產(chǎn)力既绕。

在一個(gè)典型的企業(yè)商業(yè)應(yīng)用中啄刹,你需要通過(guò)與其他幾個(gè)外部系統(tǒng)的集成來(lái)構(gòu)建復(fù)雜的業(yè)務(wù)流程,以及與關(guān)系型數(shù)據(jù)庫(kù)凄贩、NoSQL數(shù)據(jù)庫(kù)誓军、消息傳遞系統(tǒng)、緩存提供商疲扎、云服務(wù)等進(jìn)行交互昵时。

是的,你需要學(xué)習(xí)和了解大量的東西椒丧,才能有效利用這種快速應(yīng)用開(kāi)發(fā)平臺(tái)壹甥。這是為了實(shí)現(xiàn)這種生產(chǎn)力可能需要付出的代價(jià)。

不要因?yàn)榛ヂ?lián)網(wǎng)上有 "語(yǔ)言X很復(fù)雜 "的調(diào)侃就簡(jiǎn)單地拋棄任何編程語(yǔ)言或者平臺(tái)壶熏。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末句柠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子棒假,更是在濱河造成了極大的恐慌俄占,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,464評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淆衷,死亡現(xiàn)場(chǎng)離奇詭異缸榄,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)祝拯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,033評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門甚带,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)她肯,“玉大人,你說(shuō)我怎么就攤上這事鹰贵∏绨保” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,078評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵碉输,是天一觀的道長(zhǎng)籽前。 經(jīng)常有香客問(wèn)我,道長(zhǎng)敷钾,這世上最難降的妖魔是什么枝哄? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,979評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮阻荒,結(jié)果婚禮上挠锥,老公的妹妹穿的比我還像新娘。我一直安慰自己侨赡,他們只是感情好蓖租,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,001評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著羊壹,像睡著了一般蓖宦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上油猫,一...
    開(kāi)封第一講書(shū)人閱讀 52,584評(píng)論 1 312
  • 那天稠茂,我揣著相機(jī)與錄音,去河邊找鬼眨攘。 笑死主慰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的鲫售。 我是一名探鬼主播共螺,決...
    沈念sama閱讀 41,085評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼情竹!你這毒婦竟也來(lái)了藐不?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 40,023評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤秦效,失蹤者是張志新(化名)和其女友劉穎雏蛮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體阱州,經(jīng)...
    沈念sama閱讀 46,555評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡挑秉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,626評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了苔货。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片犀概。...
    茶點(diǎn)故事閱讀 40,769評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡立哑,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出姻灶,到底是詐尸還是另有隱情铛绰,我是刑警寧澤,帶...
    沈念sama閱讀 36,439評(píng)論 5 351
  • 正文 年R本政府宣布产喉,位于F島的核電站捂掰,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏曾沈。R本人自食惡果不足惜这嚣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,115評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望晦譬。 院中可真熱鬧疤苹,春花似錦互广、人聲如沸敛腌。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,601評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)像樊。三九已至,卻和暖如春旅敷,著一層夾襖步出監(jiān)牢的瞬間生棍,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,702評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工媳谁, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留涂滴,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,191評(píng)論 3 378
  • 正文 我出身青樓晴音,卻偏偏與公主長(zhǎng)得像柔纵,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子锤躁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,781評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容