做Java的朋友們總想要達(dá)到更高的境界,用更少的代碼解決更多的問(wèn)題,用更清晰的結(jié)構(gòu)為可能的傳承和維護(hù)做準(zhǔn)備。想想當(dāng)初自己摸著石頭過(guò)河,也看過(guò)不少人介紹的學(xué)習(xí)路線,今天小編就來(lái)說(shuō)說(shuō)高級(jí)java進(jìn)階學(xué)習(xí)路線:
1、用好正在用的框架
在已經(jīng)加入的團(tuán)隊(duì)中,和大家協(xié)作使用團(tuán)隊(duì)已選好的框架。不管框架優(yōu)劣與否,特點(diǎn)如何,選擇了它必然有一定的道理。并且能夠在業(yè)界經(jīng)久流行的框架也一定有它的優(yōu)秀之處。
使用框架第一步是熟悉,可能通過(guò)復(fù)制和修改前人的代碼來(lái)實(shí)現(xiàn)新的功能或修改已有功能,逐漸熟悉該框架的使用方法。
第二步是深入了解,會(huì)用、多用之后,根據(jù)用法和現(xiàn)象掌握其規(guī)律,從而形成對(duì)框架內(nèi)部結(jié)構(gòu)和運(yùn)行機(jī)制的猜測(cè),大部分肯定都是對(duì)的。
第三步是用好,在對(duì)框架內(nèi)部機(jī)制有了一定的感覺(jué)后,逐漸總結(jié)并采用更佳實(shí)踐,達(dá)到同樣目的采用更簡(jiǎn)潔清晰或更高效率的方法??梢詤⒖伎蚣艿?ldquo;最佳實(shí)踐”文檔(比如Hibernate參考手冊(cè)的最后一章),對(duì)沒(méi)有提供“最佳實(shí)踐”文檔的可以自己總結(jié)一些經(jīng)驗(yàn),并不斷完善。
沒(méi)有絕對(duì)的最佳實(shí)踐,只有適應(yīng)于某一場(chǎng)景的最佳實(shí)踐,和適用于大多數(shù)場(chǎng)合的較好實(shí)現(xiàn)。能夠根據(jù)場(chǎng)景選擇不同的模式,是水平提高的標(biāo)志。
2、了解標(biāo)準(zhǔn)類庫(kù)、企業(yè)級(jí)技術(shù)和開源項(xiàng)目
Java界現(xiàn)有的積累已經(jīng)很豐富,當(dāng)遇到某個(gè)問(wèn)題感覺(jué)它是個(gè)普遍問(wèn)題時(shí),很有可能就已經(jīng)有現(xiàn)成的標(biāo)準(zhǔn)類庫(kù)或開源項(xiàng)目等在那里了。掌握好標(biāo)準(zhǔn)類庫(kù)和開源項(xiàng)目,可以減少工作量,使代碼結(jié)構(gòu)清晰容易理解。企業(yè)級(jí)技術(shù)是指JavaEE平臺(tái)內(nèi)的技術(shù),其多是從已有積累中提煉出的標(biāo)準(zhǔn),比如JPA就很大程度上來(lái)自于Hibernate。企業(yè)級(jí)技術(shù)的運(yùn)用對(duì)程序的標(biāo)準(zhǔn)化很有好處。
對(duì)標(biāo)準(zhǔn)類庫(kù)和開源項(xiàng)目的了解不分先后,可以是交叉進(jìn)行的,用到了哪個(gè)就看看學(xué)學(xué)哪個(gè)。也可以用業(yè)余時(shí)間挑自己喜歡的學(xué)習(xí)學(xué)習(xí)、做做實(shí)驗(yàn)。
2.1.標(biāo)準(zhǔn)類庫(kù)
從Java自帶的文檔中可以看到標(biāo)準(zhǔn)類庫(kù)(以及平臺(tái)工具)的列表以及相互關(guān)系。下面這幅圖就是層次關(guān)系圖:
乍一看內(nèi)容眾多,但實(shí)際上可能已經(jīng)有很多已經(jīng)被用過(guò)了。比如JDBC,應(yīng)該是每個(gè)Java程序員在涉世不深時(shí)就已經(jīng)用過(guò)的了吧。JNDI應(yīng)該也是做WEB工程必須接觸的東西。也許只是其中幾個(gè)API,不過(guò)什么都是了解、熟練、精通這三步,了解了,后面就不遠(yuǎn)。
其中規(guī)則表達(dá)式、XML處理、applet、并發(fā)(多線程)、網(wǎng)絡(luò)、IO、圖形是比較實(shí)用的功能,可以先從它們?nèi)胧帧1镜亟涌冢↗NI)、管理擴(kuò)展(JMX)、反射等可以用在更高級(jí)一些的場(chǎng)合,會(huì)了之后可以為更多的場(chǎng)景提供解決方案。
2.2.企業(yè)及技術(shù)
包括JavaMail、JMS、EJB、JPA、JSF、web service等,具體的列表可以到JavaEE技術(shù)官網(wǎng)找到。這些技術(shù)用起來(lái)并不深?yuàn)W,甚至比標(biāo)準(zhǔn)類庫(kù)還淺顯。
2.3.開源項(xiàng)目
框架一般都是開源項(xiàng)目,目前擁有開源項(xiàng)目最多的組織莫過(guò)于Apache。可以通過(guò)需要來(lái)學(xué)習(xí)開源項(xiàng)目,比方說(shuō)需要處理Excel文檔,那就去學(xué)用POI;要用web service就看看CXF;需要字符串處理就看看Commons Lang中有沒(méi)有實(shí)現(xiàn);需要IO操作就看看Commons IO中有沒(méi)有實(shí)現(xiàn)。
除了Apache,還有eclipse、springsource和Jboss等多家開源機(jī)構(gòu)提供了大量的免費(fèi)好貨,有時(shí)間就去了解一下不失為進(jìn)階的好手段。“君子性非異也,善假于物也“——厲害的家伙不一定是什么都會(huì)自己寫,而往往是會(huì)結(jié)合使用各種神器。
這里順便說(shuō)一句,很多開源項(xiàng)目都用了比較少見的英文單詞或是自造詞作為名字,遇到時(shí)最好去官網(wǎng)上確定它的讀音。很多人把Struts(原意:大搖大擺)讀成了Structs,明顯跟struct(結(jié)構(gòu))搞混了,聽起來(lái)實(shí)在業(yè)余。還有PostgreSQL應(yīng)讀作postgres-QL,而不是postgre-SQL,請(qǐng)尊重作者的原意。Debian應(yīng)讀作“戴博伊恩”,是作者夫婦的名字合體,讀成“大便”就太對(duì)不起人家了。Ubuntu也別讀“優(yōu)斑圖”了。
以上就是長(zhǎng)沙中公優(yōu)就業(yè)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“高級(jí)java進(jìn)階學(xué)習(xí)路線了解一下”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
Java學(xué)習(xí)路線