·JAVA學習路線
1、基礎(chǔ)語法及JAVA原理:
基礎(chǔ)語法和JAVA原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習JAVA也是如此,必須要有扎實的基礎(chǔ),你才能在J2EE、J2ME領(lǐng)域游刃有余。參加SCJP(SUN公司認證的JAVA程序員)考試不失為一個好方法,原因之一是為了對得起你交的1200大洋考試費,你會更努力學習,原因之二是SCJP考試能夠讓你把基礎(chǔ)打得很牢靠,它要求你跟JDK一樣熟悉JAVA基礎(chǔ)知識;但是你千萬不要認為考過了SCJP就有多了不起,就能夠獲得軟件公司的青睞,就能夠獲取高薪,這樣的想法也是很危險的。獲得"真正"的SCJP只能證明你的基礎(chǔ)還過得去,但離實際開發(fā)還有很長的一段路要走。
2、OO思想的領(lǐng)悟:
掌握了基礎(chǔ)語法和JAVA程序運行原理后,我們就可以用JAVA語言實現(xiàn)面向?qū)ο蟮乃枷肓恕C嫦驅(qū)ο?,是一種方法學;是獨立于語言之外的編程思想;是CBD基于組件開發(fā)的基礎(chǔ);屬于強勢技術(shù)之一。當以后因工作需要轉(zhuǎn)到別的面向?qū)ο笳Z言的時候,你會感到特別的熟悉親切,學起來像喝涼水這么簡單。
使用面向?qū)ο蟮乃枷脒M行開發(fā)的基本過程是:
●調(diào)查收集需求;
●建立用例模型;
●從用例模型中識別分析類及類與類之間的靜態(tài)動態(tài)關(guān)系,從而建立分析模型;
●細化分析模型到設(shè)計模型;
●用具體的技術(shù)去實現(xiàn);
●測試、部署、總結(jié)。
3、基本API的學習:
進行軟件開發(fā)的時候,并不是什么功能都需要我們?nèi)崿F(xiàn),也就是經(jīng)典名言所說的"不需要重新發(fā)明輪子"。我們可以利用現(xiàn)成的類、組件、框架來搭建我們的應用,如SUN公司編寫好了眾多類實現(xiàn)一些底層功能,以及我們下載過來的JAR文件中包含的類,我們可以調(diào)用類中的方法來完成某些功能或繼承它。那么這些類中究竟提供了哪些方法給我們使用?方法的參數(shù)個數(shù)及類型是?類的構(gòu)造器需不需要參數(shù)?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。他們只能提供文檔給我們查看,JAVADOC文檔(參考文獻4.4)就是這樣的文檔,它可以說是程序員與程序員交流的文檔。
基本API指的是實現(xiàn)了一些底層功能的類,通用性較強的API,如字符串處理/輸入輸出等等。我們又把它成為類庫。熟悉API的方法一是多查JAVADOC文檔(參考文獻4.4),二是使用JBuilder/Eclipse等IDE的代碼提示功能。
4、特定API的學習:
JAVA介入的領(lǐng)域很廣泛,不同的領(lǐng)域有不同的API,沒有人熟悉所有的API,對一般人而言只是熟悉工作中要用到的API。如果你做界面開發(fā),那么你需要學習Swing/AWT/SWT等API;如果你進行網(wǎng)絡游戲開發(fā),你需要深入了解網(wǎng)絡API/多媒體API/2D3D等;如果你做WEB開發(fā),就需要熟悉Servlet等API啦。總之,需要根據(jù)工作的需要或你的興趣發(fā)展方向去選擇學習特定的API。
5、開發(fā)工具的用法:
在學習基礎(chǔ)語法與基本的面向?qū)ο蟾拍顣r,從鍛煉語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時候不要急于上手JBuilder/Eclipse等集成開發(fā)環(huán)境,以免過于關(guān)注IDE的強大功能而分散對JAVA技術(shù)本身的注意力。過了這一階段你就可以開始熟悉IDE了。
程序員日常工作包括很多活動,編輯、編譯及構(gòu)建、調(diào)試、單元測試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項活動都有專門的工具,如果獨立使用這些工具的話,你將會很痛苦,你需要在堆滿工具的任務欄上不斷的切換,效率很低下,也很容易出錯。在JBuilder、Eclipse等IDE中已經(jīng)自動集成編輯器、編譯器、調(diào)試器、單元測試工具JUnit、自動構(gòu)建工具ANT、版本控制工具CVS、DOC文檔生成與更新等等,甚至可以把UML建模工具也集成進去,又提供了豐富的向?qū)椭煽蚣艽a,讓我們的開發(fā)變得更輕松。應該說IDE發(fā)展的趨勢就是集成軟件開發(fā)中要用到的幾乎所有工具。
從開發(fā)效率的角度考慮,使用IDE是必經(jīng)之路,也是從一個學生到一個職業(yè)程序員轉(zhuǎn)變的里程碑。
JAVA開發(fā)使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder占有的市場份額是最 大的。JBuilder在近幾年來一直是JAVA集成開發(fā)環(huán)境中的霸主,它是由備受程序員尊敬的Borland公司開發(fā),在硝煙彌漫的JAVAIDE大戰(zhàn)中,以其快速的版本更新?lián)魯BM的VisualAgeforJAVA等而成就一番偉業(yè)。IBM在VisualAgeforJAVA上已經(jīng)無利可圖之下,干脆將之貢獻給開源社區(qū),成為Eclipse的前身,真所謂"柳暗花明又一村"。浴火重生的Eclipse以其開放式的插件擴展機制、免費開源獲得廣大程序員(包括幾乎所有的骨灰級程序員)的青睞,極具發(fā)展?jié)摿Α?/p>
6、學習軟件工程:
對小型項目而言,你可能認為軟件工程沒太大的必要。隨著項目的復雜性越來越高,軟件工程的必要性才會體現(xiàn)出來。
·學習要點:
確立的學習路線之后,我們還需要總結(jié)一下JAVA的學習要點,這些要點在前文多多少少提到過,只是Arwin覺得這些地方特別要注意才對它們進行匯總。
1、勤查API文檔:
當程序員編寫好某些類,覺得很有成就感,想把它貢獻給各位苦難的同行。這時候你要使用"javadoc"工具(包含在JDK中)生成標準的JAVADOC文檔,供同行使用。J2SE/J2EE/J2ME的DOC文檔是程序員與程序員交流的工具,幾乎人手一份,除了菜鳥之外。
對待DOC文檔要像毛主席語錄,早上起床念一遍,吃飯睡覺前念一遍。
當需要某項功能的時候,你應該先查相應的DOC文檔看看有沒有現(xiàn)成的實現(xiàn),有的話就不必勞神費心了直接用就可以了,找不到的時候才考慮自己實現(xiàn)。使用步驟一般如下:
●找特定的包,包一般根據(jù)功能組織;
●找需要使用類,類命名規(guī)范的話我們由類的名字可猜出一二;
●選擇構(gòu)造器,大多數(shù)使用類的方式是創(chuàng)建對象;
●選擇你需要的方法。
2、查書/google->寫代碼測試->查看源代碼->請教別人:
當我們遇到問題的時候該如何解決?
這時候不要急著問別人,太簡單的問題,沒經(jīng)過思考的問題,別人會因此而瞧不起你??梢韵日艺視絞oogle中搜一下看看,絕大部分問題基本就解決了。而像"某些類/方法如何使用的問題",DOC文檔就是答案。對某些知識點有疑惑是,寫代碼測試一下,會給你留下深刻的印象。而有的問題,你可能需要直接看API的源代碼驗證你的想法。萬不得已才去請教別人。
3、學習開源軟件的設(shè)計思想:
JAVA領(lǐng)域有許多源代碼開放的工具、組件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive論壇、PetStore寵物店等等多如牛毛。這些可是前輩給我們留下的瑰寶呀。入寶山而空手歸,你心甘嗎?對這些工具、框架進行分析,領(lǐng)會其中的設(shè)計思想,有朝一日說不定你也能寫一個XXX框架什么的,風光一把。分析開源軟件其實是你提高技術(shù)、提高實戰(zhàn)能力的便捷方法。
4、規(guī)范的重要性:
沒有規(guī)矩,不成方圓。這里的規(guī)范有兩層含義。第 一層含義是技術(shù)規(guī)范,多讀規(guī)范,這是最權(quán)威準確最 新的教材。第二層含義是編程規(guī)范,如果你使用了大量的獨特算法,富有個性的變量及方法的命名方式;同時,沒給程序作注釋,以顯示你的編程功底是多么的深厚。這樣的代碼別人看起來像天書,要理解談何容易,更不用說維護了,必然會被無情地掃入垃圾堆。
JAVA不要孤立地去學習,需要綜合學習數(shù)據(jù)結(jié)構(gòu)、OOP、軟件工程、UML、網(wǎng)絡編程、數(shù)據(jù)庫技術(shù)等知識,用橫向縱向的比較聯(lián)想的方式去學習會更有效。如學習JAVA集合的時候找數(shù)據(jù)結(jié)構(gòu)的書看看;學JDBC的時候復習數(shù)據(jù)庫技術(shù);采取的依然是"需要的時候再學"的原則。