国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

Java 征途:行者的地圖

dkzwm / 3173人閱讀

摘要:老實(shí)說(shuō),當(dāng)時(shí)一進(jìn)入世界的大門(mén)就暈了,各種規(guī)范概念和英文縮寫(xiě)詞能把人整的暈暈乎乎。等新的英文縮寫(xiě)又出現(xiàn)了,一口老血還沒(méi)來(lái)得及噴出,又重新振作開(kāi)始新的學(xué)習(xí)征程。

前段時(shí)間應(yīng) CSDN 邀請(qǐng)審核 Java 知識(shí)庫(kù)內(nèi)容,借此我也有機(jī)會(huì)好好梳理了下自己的 Java 知識(shí)體系, 成文一篇望能幫到即將走進(jìn)或正在 Java 世界跋涉的程序員們。

第一張,基礎(chǔ)圖

大約在 2003 年我開(kāi)始知道 Java 的(當(dāng)時(shí)還在用 Delphi),但到 2004 年本科畢業(yè)才開(kāi)始正式?jīng)Q定學(xué)習(xí) Java。 那時(shí)覺(jué)得用 Delphi 寫(xiě) C/S 架構(gòu)的程序沒(méi)什么意思,Java 當(dāng)時(shí)提出的 J2EE 規(guī)范概念,企業(yè)級(jí)架構(gòu)感覺(jué)各種高大上,壓抑不住內(nèi)心的欲望就這么開(kāi)啟了 Java 的征途。 老實(shí)說(shuō),當(dāng)時(shí)一進(jìn)入 Java 世界的大門(mén)就暈了,各種規(guī)范、概念和英文縮寫(xiě)詞能把人整的暈暈乎乎。

J2SE

J2EE

J2ME

JSP

JDBC

JMS

EJB

JNDI

JDBC

JTA

隨便回憶了下當(dāng)時(shí)一進(jìn)來(lái)咋一看到的東西,很多陌生的英文名詞縮寫(xiě)(幸好那時(shí) Java 還沒(méi)有各種框架百花齊放,要不更暈了),根本不知道該從哪里入手學(xué)起。 而正好同學(xué)有本 JSP 的書(shū),所以我就從 JSP 入手了。老實(shí)說(shuō)那真是本爛書(shū),我現(xiàn)在連名字都不記得了,大概記得是從一些例子入手搭建起一個(gè) JSP 的 Demo 站點(diǎn)。 被各種環(huán)境、容器問(wèn)題虐了千百遍后終于跑起了個(gè)例子,從本機(jī)瀏覽器終于看到例子里的頁(yè)面,有一秒鐘的成就感,然后就是茫然。 因?yàn)槲腋靖悴欢@一切是怎么工作的,它們的原理是什么? 繞了一大圈,走了很多彎路,如果再給我一次重來(lái)的機(jī)會(huì),我會(huì)從基本 Java 語(yǔ)言基礎(chǔ)開(kāi)始。

什么是基礎(chǔ)?Java 是一門(mén)面向?qū)ο笳Z(yǔ)言,最重要的概念是對(duì)象,而其所有的語(yǔ)法不過(guò)都是圍繞它展開(kāi)。 而其他程序的基本的結(jié)構(gòu)和變量:順序、循環(huán)、分支,有之前的其他語(yǔ)言基礎(chǔ)不過(guò)就是換了個(gè)形式而已。 理解了對(duì)象,那么圍繞對(duì)象的概念:類(lèi)、接口都是自然的延伸。 當(dāng)然掌握了核心概念和基本的語(yǔ)法,也不過(guò)就是能寫(xiě)個(gè) Hello World 的水準(zhǔn),但重點(diǎn)是你的起點(diǎn)對(duì)了,征程就近了。

這個(gè)階段通過(guò)讀好書(shū)和作一些基本的練習(xí)來(lái)熟悉語(yǔ)言和相關(guān)類(lèi)庫(kù)。 Java 起步的書(shū)籍在我的印象中《Thinking In Java》挺合適(哎,我繞了一圈才看到這本書(shū)),當(dāng)然也還有些其他不錯(cuò)的書(shū),如《Introduction to Java Programming》,《Core Java》。 我的感受是這類(lèi)起步書(shū)可以多弄幾本,一個(gè)知識(shí)點(diǎn)參照著讀,畢竟一個(gè)作者可能也有疏漏,橫向閱讀,而不是縱向把一本從頭啃到尾。 一個(gè)知識(shí)點(diǎn)一個(gè)知識(shí)點(diǎn)的抓住,搞通,一步就踩一個(gè)深深的腳印,不要到處亂跑,結(jié)果都是泛泛,起步慢點(diǎn),后面才能快。

關(guān)于基礎(chǔ),在我眼中最核心和重要的部分并不多,我這里簡(jiǎn)單列下:

核心概念

對(duì)象模型

接口設(shè)計(jì)

類(lèi)庫(kù)

lang

collections

concurrent

io

這里核心概念就不多寫(xiě)了,基本體現(xiàn)在所有 Java 的代碼庫(kù)中,伴隨始終,差別只在理解和抽象的適度與否。 JDK 那么多庫(kù),這里只列了上面幾個(gè),lang 里面其實(shí)最重要的我想說(shuō)的是 String,這是很多人都忽略的。 C 里沒(méi)有 String 的概念,Java 則提供了這個(gè)對(duì)象,但沒(méi)能好好理解并用好這個(gè)對(duì)象,以后會(huì)讓你踩無(wú)盡的坑,還反復(fù)踩。 不信去搜搜關(guān)于各種字符編碼亂碼的低級(jí)問(wèn)題有多少,除此還有由于 String 引發(fā)的各種性能問(wèn)題。 由 String 這個(gè)核心對(duì)象發(fā)散出去關(guān)于字符的編碼,字符的字節(jié)表達(dá)(大端、小端、網(wǎng)絡(luò)字節(jié)序),對(duì) GC 的影響,正則表達(dá),模式匹配,這可能是 Java 里內(nèi)涵最豐富的對(duì)象了。

Collections 框架提供了大量常用的數(shù)據(jù)結(jié)構(gòu)封裝,基本讓 Java 程序員告別了手動(dòng)實(shí)現(xiàn)你從數(shù)據(jù)結(jié)構(gòu)課程上學(xué)來(lái)的絕大部分常用數(shù)據(jù)結(jié)構(gòu)。 正確理解不同數(shù)據(jù)結(jié)構(gòu)的適用場(chǎng)景比自己能手動(dòng)實(shí)現(xiàn)它們有用的多,沒(méi)事多看看 Collections 中的代碼,都是大師級(jí)的實(shí)現(xiàn)啊。 記得我學(xué) Java 時(shí)還是 JDK 1.3,進(jìn)入工作后主流是 1.4,那時(shí)是沒(méi)有 concurrent 庫(kù)的。 自己處理線(xiàn)程間通信時(shí),被各種通知遺漏、早通知,死鎖搞的死去活來(lái)。 所以現(xiàn)在的 Java 的程序員都要幸福的多了,concurrent 又一個(gè)大師級(jí)的類(lèi)庫(kù)實(shí)現(xiàn),也是可以沒(méi)事多看看,多揣摩。 IO 庫(kù),不論是文件 IO 還是網(wǎng)絡(luò) IO 都是 Java 程序員最常打交道的,熟悉它的 API 固然重要, 但更重要的是理解是如何對(duì) IO 操作的抽象和建模,理解不同的 IO 模型其背后的本質(zhì)與原理。

好了,當(dāng)完成可上面這些基礎(chǔ)內(nèi)容的學(xué)習(xí)后,我們得到了第一張地圖,像下面這樣。

第二張,技能圖

即使掌握了第一張圖要在 Java 的世界自由馳騁還是有點(diǎn)小困難的。 現(xiàn)在 Java 的一個(gè)主流使用場(chǎng)景是后端開(kāi)發(fā),這一領(lǐng)域在它的上一個(gè)時(shí)代是 J2EE(現(xiàn)在叫 Java EE) 的天下,又稱(chēng)為 Java 企業(yè)版。 J2EE 包含的內(nèi)容很多,核心是 EJB。當(dāng)時(shí)我剛在學(xué)校里累死累活學(xué)完分布式對(duì)象技術(shù),以 CORBA 和 EJB 為例來(lái)實(shí)作。 又看了好幾本 EJB 設(shè)計(jì)模式和最佳實(shí)踐的書(shū),然后還沒(méi)畢業(yè)進(jìn)入公司一實(shí)習(xí)發(fā)現(xiàn)大家說(shuō)現(xiàn)在不用 EJB 了,我們用一個(gè)叫 Spring 的東東。 IoC、DI 等新的英文縮寫(xiě)又出現(xiàn)了,一口老血還沒(méi)來(lái)得及噴出,又重新振作開(kāi)始新的學(xué)習(xí)征程。

是的,EJB 在那時(shí)(2005)開(kāi)始慢慢退出主流。 音樂(lè)學(xué)博士 Rod Johnson 一本 《Expert One-on-One J2EE Development without EJB》宣判了 EJB 的死刑,Spring 登上歷史舞臺(tái)。 從此 Java 進(jìn)入了 Framework 大發(fā)展的時(shí)代,SSH/SSI 等技術(shù)框架組合形成了 Java 開(kāi)發(fā)的主流,并持續(xù)影響至今。

Java 的框架越來(lái)越多,生態(tài)越來(lái)越大,初學(xué)者面對(duì)如此龐雜的框架,想必也是內(nèi)心茫然,感覺(jué)真是學(xué)無(wú)止境,沒(méi)完沒(méi)了。 其實(shí)真實(shí)的項(xiàng)目中,真正用到的框架并不多,SSH/SSI 基本作為 Java Web 項(xiàng)目的核心框架,是你上手的核心利器,自需熟練掌握。 但知其然還需知其所以然,Spring 接管了對(duì)象創(chuàng)建和相互依賴(lài)管理的工作,把設(shè)計(jì)模式隱藏在框架的運(yùn)用中,很多人只知用而未曾思。 Web 開(kāi)發(fā)從早期的 JSP 一大亂燉(HTML + CSS + JS + Java + SQL,早期我就是把所有這些都放一個(gè) JSP 里,想想有多難維護(hù)),到 MVC 的職責(zé)劃分。 僅僅一個(gè) View 層也經(jīng)歷了從標(biāo)簽庫(kù)到頁(yè)面模版(Velocity、Freemarker)的進(jìn)化,如今更徹底的前后端分離模型我更喜歡。 曾幾何時(shí)調(diào)幾個(gè)頁(yè)面的 CSS 樣式殺死了我多少時(shí)間,專(zhuān)業(yè)化分工是有利于效率和深度的,互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)大發(fā)展引發(fā)的 Web 版本進(jìn)化,讓如今的前端復(fù)雜度已不在后端之下。

那么作為一個(gè) Java 工程師我到底要掌握多少框架才夠?這是一個(gè)偽命題,因?yàn)檎莆斩嗌賯€(gè)都不會(huì)夠。 核心的熟練掌握幾個(gè),泛泛了解大量的,掌握快速學(xué)習(xí)框架的能力才是解決之道。 還是以 SSH/SSI 為例,專(zhuān)業(yè)前端分工的趨勢(shì)越發(fā)明顯,徹底解放了后端 Java 工程師的苦惱。 以 Spring 為例的框架解決了大量通用型的問(wèn)題,今天的 Spring 比當(dāng)初大了幾十倍不止吧(把所有以 Spring 冠名的子項(xiàng)目算上的話(huà)),都是解決特定的通用問(wèn)題。 所以當(dāng)你寫(xiě)代碼時(shí)突然想寫(xiě)個(gè)以 Util 命名的類(lèi)時(shí),停住想想這是一個(gè)解決通用問(wèn)題的類(lèi)么,不妨搜搜現(xiàn)成的類(lèi)庫(kù),比如說(shuō)不定 Apache Commons 里就有你需要的代碼。 通用類(lèi)庫(kù)和框架讓我們解放出來(lái)專(zhuān)注業(yè)務(wù)邏輯與效率,這很可能是你的代碼最有價(jià)值的部分,有程序員可能會(huì)抱怨這些沒(méi)技術(shù)含量,而我認(rèn)為能用最有效的技術(shù)實(shí)現(xiàn)業(yè)務(wù)價(jià)值最大化才是最有技術(shù)含量的事。

框架如兵器,十八般(遠(yuǎn)不止十八)兵器我未必樣樣會(huì),但我們得有一樣能力,如張無(wú)忌學(xué)太極劍一樣,臨敵學(xué)劍還能勝之。 這里面的訣竅不在學(xué)習(xí)招式,好比你也許覺(jué)得你 Hibernate 用法掌握的爐火純青又如何,一上線(xiàn)數(shù)據(jù)庫(kù)卻先崩潰了。 這里的本質(zhì)還在理解關(guān)系(SQL)數(shù)據(jù)庫(kù),現(xiàn)在也許還需要加上對(duì)特定非關(guān)系(NoSQL)數(shù)據(jù)庫(kù)的原理與機(jī)制的理解,甚至包括對(duì) O/R 映射模型的本質(zhì)理解。

所以,基礎(chǔ)像內(nèi)功、框架如兵器、運(yùn)用為招式,存乎一心、運(yùn)用之妙,三者融會(huì)貫通,則已可在 Java 世界縱橫一方。 如上所述,基于此我們有了第二張地圖。

第三張,延伸圖

而第三張圖,我已無(wú)法再給出一個(gè)我認(rèn)為稍具普適性的建議。 到了這個(gè)階段每個(gè)人的成長(zhǎng)發(fā)展方向會(huì)受其環(huán)境和實(shí)際情況影響,我以自身為例稍加說(shuō)明。 進(jìn)入互聯(lián)網(wǎng)公司后這幾年,Java 技術(shù)的發(fā)展開(kāi)始從 J2EE 容器化的單一應(yīng)用向 SOA 和微服務(wù)發(fā)展變遷。 規(guī)模化的分布式系統(tǒng)成為常態(tài),所以我更多的相關(guān)工作便集中于此領(lǐng)域。 一方面縱深挖掘繼續(xù)補(bǔ)全知識(shí)盲區(qū),比如分布式程序的基礎(chǔ)是 RPC 調(diào)用,RPC 的本質(zhì)是網(wǎng)絡(luò)加對(duì)象序列化。 相應(yīng)就去徹底搞懂 TCP 的原理,Unix/Linux 下網(wǎng)絡(luò)編程模型,幾種不同的網(wǎng)絡(luò) IO 模型。 然后再上升到 Java 基于此提供的網(wǎng)絡(luò)編程模型,BIO(阻塞)、NIO(非阻塞)和 AIO(異步IO),并結(jié)合實(shí)際工作實(shí)踐去深入理解。

在這個(gè)過(guò)程接觸了大量不同的 RPC 技術(shù),從 Java 自帶的 RMI 到 WebService 技術(shù)規(guī)范。 之后一些更簡(jiǎn)潔、性能更強(qiáng)大的 RPC 框架層出不窮,如 Hessian、Thrift 等等。 不同框架的本質(zhì)依然如一,隨著服務(wù)化的發(fā)展基于 RPC 框架又進(jìn)一步衍生出提供額外增值功能的服務(wù)框架,如阿里開(kāi)源的 Dubbo。 隨著工作實(shí)踐的深入,向下有可能又會(huì)進(jìn)入 JVM 層面去分析對(duì)象的內(nèi)存使用,線(xiàn)程的調(diào)度運(yùn)行和延時(shí)情況。 這個(gè)階段發(fā)揮核心作用的依然是前面說(shuō)的快速學(xué)習(xí)并應(yīng)用于工作實(shí)踐的能力。

與縱深的另一面是橫向擴(kuò)展,隨著工作性質(zhì)的變化也可能需要更寬廣的技術(shù)知識(shí)面。 比如成為架構(gòu)師后,對(duì)技術(shù)知識(shí)面的廣度要求某些方面會(huì)更高。 有方法的技術(shù)學(xué)習(xí)和涉獵技巧讓你能更快擴(kuò)張技術(shù)寬度,站在更高維度來(lái)審視不同的技術(shù)方向和產(chǎn)品,最有效的做出合適的技術(shù)決策。

在這個(gè)階段的每個(gè)人都可能面臨不同的環(huán)境和實(shí)踐,所以這階段形成的地圖會(huì)千差萬(wàn)別。 下面是我的第三張圖,僅供走在 Java 征途上的同行者們參考。 而按這千差萬(wàn)別的地圖走過(guò)的路徑,正巧構(gòu)成獨(dú)一無(wú)二的你。

即使你現(xiàn)在還沒(méi)地圖,但也別茫然而永遠(yuǎn)的駐足不前。 保持前進(jìn)總會(huì)找到路,其實(shí)我就是這么過(guò)來(lái)的,一直以來(lái),不敢止步。

寫(xiě)點(diǎn)文字,畫(huà)點(diǎn)畫(huà)兒,「瞬息之間」一切都變了。覺(jué)得不錯(cuò),可長(zhǎng)按或掃描二維碼關(guān)注。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/65767.html

相關(guān)文章

  • 技術(shù)人攻略訪談三十五|小猴機(jī)器人:征途路上,星辰大海

    摘要:導(dǎo)語(yǔ)本期訪談對(duì)象小猴機(jī)器人,清華人工智能專(zhuān)業(yè)博士在讀。或許因?yàn)槌砷L(zhǎng)于廣袤的內(nèi)蒙,小猴身上帶著大山和草原一般的灑脫與樂(lè)觀,在他鐘愛(ài)的無(wú)人車(chē)上,印上了一個(gè)美好的我們的征途是星辰大海。技術(shù)人攻略除了規(guī)則挖掘,人工智能遇到的難題還 showImg(https://segmentfault.com/img/bVc1yA); 文:Gracia,攝影:周振邦 (本文為原創(chuàng)內(nèi)容,部分或全文轉(zhuǎn)載均需經(jīng)作...

    siberiawolf 評(píng)論0 收藏0
  • 大模型時(shí)代小紅書(shū)+馬蜂窩:華人團(tuán)隊(duì)開(kāi)發(fā) AI旅行app

    簡(jiǎn)介一周前,由紅杉投資的硅谷初創(chuàng)公司UTA AI推出了其核心產(chǎn)品Wanderboat AI,這是一個(gè)基于GPT-4技術(shù)的智能旅行規(guī)劃工具。該平臺(tái)允許用戶(hù)通過(guò)對(duì)話(huà)交互來(lái)明確旅行的偏好和需求,并提供包括目的地、活動(dòng)和實(shí)用建議在內(nèi)的定制化旅行建議。Wanderboat AI整合了視頻、圖片、地圖和評(píng)價(jià)等多種媒體資源,以增強(qiáng)用戶(hù)體驗(yàn)。它還具備智能互動(dòng)特性,用戶(hù)可以隨時(shí)查詢(xún)并得到立即答復(fù)。Wanderboa...

    UCloud小助手 評(píng)論0 收藏0
  • 云計(jì)算貢獻(xiàn)計(jì)策城市交通治理

    摘要:包括華為中興在內(nèi)的多家供應(yīng)商,集成先進(jìn)的信息技術(shù)數(shù)據(jù)通信技術(shù)傳感器技術(shù)電子控制技術(shù)以及計(jì)算機(jī)技術(shù)等,綜合運(yùn)用于整個(gè)交通運(yùn)輸管理體系,為構(gòu)建城市智能交通管控系統(tǒng)項(xiàng)目提供整體解決方案。  關(guān)于解決城市交通擁堵的辦法從沒(méi)有間斷過(guò)。在數(shù)據(jù)時(shí)代,科技企業(yè)提供了新的解決方案。互聯(lián)網(wǎng)+交通,物聯(lián)網(wǎng),大數(shù)據(jù),云計(jì)算,數(shù)據(jù)科學(xué),智慧交通……瞧瞧這些時(shí)下最火的詞匯,足以昭示大眾和城市管理者的熱忱。  用大數(shù)據(jù)預(yù)...

    cppowboy 評(píng)論0 收藏0
  • 大數(shù)據(jù)時(shí)代保護(hù)個(gè)人隱私5點(diǎn)建議

    摘要:以為例,據(jù)估算,每個(gè)用戶(hù)每年能為公司帶來(lái)美元的廣告收入。我想應(yīng)該會(huì)有相當(dāng)部分的人愿意出這筆錢(qián)來(lái)讓他們放過(guò)自己的個(gè)人信息,甚至可以出美元不用找零。 萬(wàn)物互聯(lián),萬(wàn)能的大數(shù)據(jù),讓我們變得無(wú)所不知,卻也讓我們所有的資料信息無(wú)處隱私,甚至受到生命與財(cái)產(chǎn)的安全威脅。而我們當(dāng)前所處互聯(lián)網(wǎng)絡(luò)中所面臨的這種防御不對(duì)等狀態(tài),一方面可以說(shuō)是前期科技發(fā)展的探索征途中交付的學(xué)費(fèi),另一方面則是先行者急功近利留下太...

    weknow619 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<