如何才能系統(tǒng)有效的學(xué)習(xí)java
Java語言的學(xué)習(xí)開始,很多同學(xué)不知道從哪入手?如果你也想知道如何從零開始學(xué)Java?那么請看下文,以下是學(xué)習(xí)啦小編分享給大家的有效的學(xué)習(xí)java的方法的資料,希望可以幫到你!
有效的學(xué)習(xí)java的方法
1明確面向?qū)ο蟮姆懂?/p>
我們必須明確一個大方向,也就是說現(xiàn)在面向?qū)ο蟮木幊谭懂?。盡管人工智能曾經(jīng)有所浪潮(看看Borland為什么有Turbo Prolog),但未來5-10年工業(yè)界廣泛承認(rèn)并接受的將是面向?qū)ο笫降木幊獭?/p>
工業(yè)界目前最流行的面向?qū)ο缶幊陶Z言就是C++和Java。所以基本上鎖定這兩個方向就可以了。而且完全可以同時掌握。
2掌握J(rèn)ava的精華特性
掌握J(rèn)ava的精華特性的同時,一定要知道為什么。比如,Interface和multi-thread。用interface是更好的多繼承的模型,而多線程則是設(shè)計到語言一級的重要特性。要完全理解interface是為什么,用多線程又有幾種常用的編程模型。
3開始進行設(shè)計
理解了語言的特性是為什么了之后,就可以試著上升到設(shè)計這個層次,畢竟學(xué)習(xí)語言是要用的。目前比較好的開發(fā)模式是采用自定向下的面向?qū)ο蟮脑O(shè)計,加上MVC的模式(你可以看一下我介紹的關(guān)于MVC的內(nèi)容)。首先要找出最頂層的對象(這往往是最難的),然后一層一層往下遞歸,記住每次應(yīng)符合7+/-2的原則,因為我們?nèi)说亩逃洃浘褪沁@樣。一般有圖形用戶界面的應(yīng)從界面開始設(shè)計。
4學(xué)習(xí)設(shè)計模式
有了基本設(shè)計模型后,可以學(xué)一些設(shè)計模式(Design Pattern)。這是目前證明很有效的。比如體系結(jié)構(gòu)模式(Layering分層,Pipe/Filter管道或過濾器),設(shè)計模式(有很多,比如對象池Object Pool、緩沖池Cache等),編程模式(比如Copy-on-Write)。
懂了這些模式之后,就會對系統(tǒng)的整體結(jié)構(gòu)有很好的把握,而學(xué)術(shù)上也有傾向一個系統(tǒng)完全可以由各種模式組合而成。前面提到的MT實際上就有好幾種模式,掌握后就不用自己花很多時間去試了。另外一個很重要的領(lǐng)域就是并行和分布式計算領(lǐng)域,大概有20種左右。
5進行編程實踐
接下來就不能紙上談兵了,最好的方法其實是實踐。一般教科書上的例子并不能算是實踐,只能算是讓你掌握語言特性用的。而提倡做實際的Project也不是太好,因為你還沒有熟練的能力去綜合各種技術(shù),這樣只能是你自己越來越迷糊。
我認(rèn)為比較好的方法是找一些比較經(jīng)典的例子,每個例子比較集中一種編程思想而設(shè)計的,比如在我的實踐當(dāng)中,我曾經(jīng)學(xué)習(xí)過一個很經(jīng)典的例子就是用Java實現(xiàn)的HotDraw(源自SmallTalk),你可以用rolemodel或hotdraw在搜索引擎上找一下,我記不大清楚了。好象是個網(wǎng)站,上面有原代碼和一些基本設(shè)計的文檔。
另一個來源可以到是個不錯的文檔基地。從HotDraw上我學(xué)到了什么是Framework,以及如何用rolemodel的方式來構(gòu)造,這樣我就可以應(yīng)用到其他的地方。順便說一句,這個例子你絕對不會覺得小,只會覺得大,并且他還是真正的商用的Framework。
6學(xué)習(xí)修改經(jīng)典例子
結(jié)合前面學(xué)到的設(shè)計模式你就可以很好的理解這些經(jīng)典的例子。并且自己可以用他來實現(xiàn)一些簡單的系統(tǒng)。如果可以對他進行進一步的修改,找出你覺得可以提高性能的地方,加上自己的設(shè)計,那就更上一個層次了,也就會真正地感到有所收獲。
好象以上談的跟Java沒什么關(guān)系,其實我們早就應(yīng)該從單純的學(xué)習(xí)語言到真正的學(xué)習(xí)好編程的領(lǐng)域。學(xué)習(xí)技術(shù)是沒有止境的,你學(xué)習(xí)第一種語言可能要半年時間,以后每種語言都不應(yīng)該超過兩個月,否則你會覺得學(xué)習(xí)語言是包袱,是痛苦。
7學(xué)以致用
學(xué)習(xí)是為了用的,是為了讓你的程序產(chǎn)生價值,把握住這個原則會比較輕松點。
有效的學(xué)習(xí)java的建議
1. 靜靜的想想
學(xué)習(xí)Java之前,靜下心來想想,這關(guān)系到你以后該走的路:
1)你對學(xué)習(xí)Java是否有興趣?
2)你的興趣點能否支撐你持續(xù)去學(xué)習(xí)這門語言?
3)你對Java深入了解過嗎?這門語言能夠幫助你達到怎樣一個目標(biāo)?
4)Java的前景,生命力,就業(yè)率,以及市場的需求是否符合自己的發(fā)展?
這些問題必須要仔細思考一下,首先確信自己對Java感興趣、要有吃苦耐勞的精神,那你才可能學(xué)好Java!成功的秘訣就是專注與堅持,如果具備這兩點條件,就請繼續(xù)往下看……
2. 開始發(fā)奮(準(zhǔn)備)
請不要把你的學(xué)習(xí)Java之路和其它計算機技術(shù)分開看待,技術(shù)的聯(lián)系往往是千絲萬縷的,你應(yīng)該掌握一些學(xué)習(xí)Java所涉及的基礎(chǔ)知識,對于 “CLASSPATH要怎么設(shè)置啊”、“跪求JDK下載地址”等等問題,這些問題可以直接從搜索引擎中獲取到答案,互聯(lián)網(wǎng)+時代,云時代,知識與資源共享,一些普遍的問題都可以得到解決。
1)買本Java學(xué)習(xí)用書。
JDK 6正式版剛剛推出,市面上你暫時買不到JDK 6的書籍,但我仍推薦你買一本適合入門的、較新JDK版本的Java書籍,那么,你現(xiàn)在選擇一本講述JDK 5的入門書籍還是有條件的。我可以推薦一些入門書,但是我不打算這么做,因為合我口味的,不一定適合你。但無論如何,《Thing In Java》絕對不應(yīng)該作為你入門Java的第一本書籍!
記住,網(wǎng)絡(luò)上學(xué)習(xí)Java的資源很多,但不夠系統(tǒng),擁有一本Java入門書籍,是你系統(tǒng)學(xué)習(xí)Java的基礎(chǔ),入門的一個很好的條件。
2)準(zhǔn)備Java學(xué)習(xí)的電腦環(huán)境。
準(zhǔn)備你的學(xué)習(xí)環(huán)境,很簡單,安裝JDK 6,然后用類似UltraEdit、EditPlus的文本編輯器配置你的學(xué)習(xí)環(huán)境,Internet上有很多關(guān)于如何配置的文章。初學(xué)Java,不建議用IDE工具,通過一行行的敲代碼,你會碰到很多問題,只有這樣,你才能學(xué)會怎樣解決問題,并加深自己對Java的理解。
準(zhǔn)備好后,開始進入激動人心的Java學(xué)習(xí)里程吧!
3. Java基礎(chǔ)學(xué)習(xí)
學(xué)習(xí)Java的過程處處有精彩,處處有驚喜,認(rèn)準(zhǔn)了Java,你就堅持!克服心魔,恒心最終會給你回報的。
Java的體系分為Java SE、Java EE和Java ME(JDK 5.0以前分別叫J2SE、J2EE和J2ME),Java的敲門磚就是Java SE了,也就是你要入門學(xué)習(xí)的內(nèi)容,不論你日后是選擇哪個體系領(lǐng)域作為發(fā)展方向,你都得從Java SE起步。
學(xué)習(xí)Java SE,打好Java基礎(chǔ);如果想學(xué)Java EE,對于AWT、Swing是否要學(xué)習(xí)呢,我個人是覺得還是要知道里面的真諦,特別是其事件處理模式,我強烈建議初學(xué)者一定要弄清楚,其他具體的開發(fā)就不一定要全面掌握了,畢竟AWT、Swing方面的內(nèi)容足夠用幾本大部頭的書才能描述詳盡;當(dāng)然,如果你的工作就是做 AWT、Swing開發(fā),那就另當(dāng)別論了。
4. Java EE學(xué)習(xí)
學(xué)習(xí)了Java SE,還只是完成“萬里長征”的第一步。
接下來選擇學(xué)習(xí)Java EE或是Java ME(或者你還想不斷深入學(xué)習(xí)Java SE,只要你喜歡,你可以一直深入下去,就像前面所說的,我不會講到Java ME的學(xué)習(xí));估計選擇Java EE方面的學(xué)習(xí)者會多一些,Java EE所涉及技術(shù)非常多,考慮到初學(xué)者的接受程度,我會盡量從最常用的角度來介紹。
學(xué)習(xí)Java EE,在開發(fā)環(huán)境上不建議再用文本編輯器,我感覺NetBeans 5.5(目前最高正式版本)很適合初學(xué)者,我個人也很喜歡NetBeans,如果你喜歡用別的IDE如Eclipse,都沒問題,看自己喜歡吧。
4.1 學(xué)習(xí)JSP/Servlet
Java EE最高版本目前是5.0版本。
在Java EE中,首先要學(xué)習(xí)JSP/Servlet(結(jié)合Tomcat、MySQL)技術(shù),建議JSP1.2/2.X的知識都要掌握,畢竟現(xiàn)在很多的在用系統(tǒng)都還是基于JSP1.2,學(xué)習(xí)JSP,還必須掌握一些外延技術(shù),如:你還得掌握HTML基礎(chǔ)知識,最好再掌握些JavaScript(目前正火的AJAX技術(shù)之一)、CSS的技術(shù),而了解XML是必不可少的(至少描述性配置信息是通過XML來描述的)。在學(xué)習(xí)JSP/Servlet過程中,應(yīng)該結(jié)合學(xué)習(xí) JDBC、數(shù)據(jù)庫開發(fā)技術(shù),畢竟絕大多數(shù)Java Web項目都是和數(shù)據(jù)庫緊密結(jié)合的。
4.2 學(xué)習(xí)數(shù)據(jù)庫開發(fā)
重點說一下數(shù)據(jù)庫開發(fā)技術(shù),數(shù)據(jù)庫技術(shù)是做業(yè)務(wù)系統(tǒng)必備技能,Java Web開發(fā)人員最低程度都應(yīng)該掌握SQL語句的使用!數(shù)據(jù)庫技術(shù)大體可分為DBA技術(shù)和數(shù)據(jù)庫開發(fā)技術(shù),對于開發(fā)而言,應(yīng)側(cè)重數(shù)據(jù)庫開發(fā)技術(shù),而數(shù)據(jù)庫基本操作,也是要掌握的。常用數(shù)據(jù)庫有DB2、Oracle、SQL Server、MySQL等,你可以結(jié)合實際需要,選擇一種數(shù)據(jù)庫,并花大力氣掌握其開發(fā)技術(shù)。
學(xué)習(xí)數(shù)據(jù)庫開發(fā)技術(shù)和學(xué)習(xí)Java EE,是相對獨立的,你可以在學(xué)習(xí)JSP/Servlet的同時,學(xué)習(xí)數(shù)據(jù)庫開發(fā)技術(shù),或者先學(xué)數(shù)據(jù)庫開發(fā)技術(shù),之后再學(xué)習(xí)JSP/Servlet之類的。
4.3 學(xué)習(xí)Java EE其它開發(fā)
再往后一點,學(xué)習(xí)一些EJB的知識,目前EJB最新版本是3.0,其和前面的2.X版本相比,有很大的不同,考慮到目前EJB 2.X還有很大的應(yīng)用市場,建議結(jié)合學(xué)習(xí)EJB 2.X/3.0。在學(xué)習(xí)EJB過程中,應(yīng)同時掌握一種企業(yè)級應(yīng)用服務(wù)器的使用(如 WebSphere、Weblogic、Sun Applcation Server或JBOSS等,目前Sun Applcation Server 9.X和JBOSS都可支持EJB 3.0)。
有效的學(xué)習(xí)java的技巧
理解Java思想
Java是一門面向?qū)ο缶幊陶Z言。向?qū)ο缶幊淌荍ava最核心的思想,這也是區(qū)分和C等其他編程語言的一個顯著特征。掌握面一門語言,首先得掌握它的思想,思想決定高度。這就和我們學(xué)習(xí)語文和英語一樣,漢語學(xué)拼音,英語學(xué)音標(biāo)。抓住了核心,學(xué)習(xí)起來就事半功倍。
弄清基本概念
作為一門語言,Java肯定有著豐富而又簡單的概念。弄清這些基本概念也是必不可少的,死記硬背肯定是不行的,重在理解,理解它們之間的區(qū)別與聯(lián)系,分別有那些應(yīng)用。有些同學(xué)打開電腦就照著書本敲代碼,根本沒有想過這些代碼中用到了哪些知識點,更談不上理解了,這樣是沒有任何效果的。
多練習(xí)
只理解了Java的基本概念是遠遠不止的,還要知道怎么去使用。剛開始,你可能會覺得Java中那么多東西怎么也記不住,就連寫一個小小的入門級程序都要涉及到好多東西。但是,當(dāng)你親手在鍵盤上敲了幾遍之后,你就會覺得之前的那些問題都不是問題了。
學(xué)會幫助看文檔與源代碼
Java是一門開放源代碼的編程語言。利用網(wǎng)絡(luò)可以下載官方的幫助文檔,當(dāng)你不知道一個東西怎么用時,你可以打開幫助文檔,你的問題一下就解決了。如果還不能解決的話,打開搜索引擎,輸入你的問題,你一定會找到答案的。如果你想弄懂Java底層的原理的話,可以去網(wǎng)上下載對應(yīng)的源代碼??戳嗽创a之后,你會發(fā)現(xiàn)Java的世界是多么的奇妙,也會提高你Java編程的水平。
猜你喜歡:
1.如何系統(tǒng)有效的學(xué)習(xí)編程知識