怎么學習Java,這是很多新手經(jīng)常會問的問題,現(xiàn)在我簡單描述下一個Java初學者到就業(yè)要學到的一些東西:
首先要明白Java體系設計到得三個方面:J2SE,J2EE,J2ME(KJAVA)。
J2SE,Java2PlatformStandardEdition,我們經(jīng)常說到的JDK,就主要指的這個,它是三者的基礎,屬于桌面級應用開發(fā),這部分如果學得好很容易拓展J2EE和J2ME。
J2ME,TheMicroEditionoftheJava2Platform。主要用于嵌入式Java,如手機,PDA等等。J2EE,Java2Platform,EnterpriseEdition,就是所謂的企業(yè)級Java,適合企業(yè)的大型應用開發(fā)。
J2SE:新手最初學習的時候先要從J2SE開始學起,所包含的內容主要分為:面向對象概念的理解、Java基本語法的學習,Java桌面圖形界面應用程序的開發(fā),掌握常用的JavaAPI等(關鍵是要學會怎樣查閱)。
重點:Java基本語法(循環(huán)結構,數(shù)據(jù)類型,數(shù)組,運算符等)、Swing,awt,事件機制、文件輸入輸出流處理等難點:面向對象思想的理解(接口、類等)、線程、socket網(wǎng)絡編程等視頻教程推薦:孫鑫的Java基礎視頻教程、張孝祥的Java基礎視頻教程,講的都很細,而且這兩位老師在教學方面都有很好的經(jīng)驗。
J2EE:在學習了J2SE之后,你可以嘗試著慢慢過渡到J2EE,當然,學習J2EE海需要很多非Java技術的支撐,比如數(shù)據(jù)庫技術,網(wǎng)頁編程技術等等,待會我會詳細介紹這兩方面的內容。
J2EE有三個必學的編程框架,如果你說你學了J2EE,但又不會這三個框架的話,那會讓人笑掉大牙,這三個框架分別是Struts、Spring和Hibernate,雖然這三個框架應用很廣,但不代表這三個框架就代表了J2EE,J2EE還有很多其他的東西,比如EJB,作為一款重量級(此重量級不是指重量級選手那個意思,此重量級非彼重量級)框架,雖然這個應用慢慢的再被其他框架所取代,但EJB3.0的出現(xiàn)也給它帶回一些生機,作為一個分布式應用的框架,也是大家要去學習和了解的知識。
當然,剛才說到J2EE包含的范圍很廣,即使我把我所了解的所有技術說出來,也并不能代表J2EE,這是一個很深很廣的學問,需要大家以后再工作的時候慢慢去發(fā)現(xiàn)了。
我所了解的還包括:JDBC:Java數(shù)據(jù)庫連接對象,基礎中的基礎,Hibernate也只是對它的封裝而已
JNDI:Java命名與目錄接口,J2EE重要規(guī)范之一
EJBS:上面已經(jīng)提到過了
RMI:提供遠程調用方法的支持,主要用于程序分布式開發(fā)
JMS:Java消息服務,中間件技術
JAVAIDL:提供J2EE平臺與CORBA交互能力和互聯(lián)能力的技術
JTS:組件事務監(jiān)視器
JTA:事務劃分的一個技術
JAVAMAIL:Java中的郵件技術
JAF:Java啟動框架,沒研究過
Log4j,一款日志處理的框架應用
Junit:單元測試的好幫手
freemarker、velocity:兩款不錯的模板引擎與Flash的交互
Flex:目前很多的SNS應用就是使用到了這個技術
Webservices:想知道我們論壇天氣預報的效果是怎么做的嗎?請關注這個技術
SOA:面向服務架構,未來技術發(fā)展的趨勢之一……
不過前面介紹到得這些都不是J2EE的基礎,是屬于框架應用級別的.要真正把上面說到的知識掌握好,還是的學習J2EE最核心的東西:JDBC、JSP、servlet和JavaBean,后面三個也是學習SSH的基礎(Struts/Spring/Hibernate的簡稱).
鑒于J2EE的內容太過復雜,建議大家最初只學習:JSP,servlet和JavaBean,等這個基礎掌握好再把SSH學習了,再對其他J2EE技術有個大致的了解就可以出去找工作了。當然,找工作的前提除了把Java學習好,還會有一些其他的技術也是必須要掌握的。
Java卻要求我學這么多復雜的東西。除了這些技術的東西,在這階段,大家更多的是會接觸到比如設計模式的東西,比如工廠模式、橋梁模式、單例模式等等,還要學習建模思想(比如UML建模等等)和軟件生命周期等等。
這些是升華大家編程思想的手段和途徑。
數(shù)據(jù)庫技術:
數(shù)據(jù)庫幾乎是程序中不可或缺的一部分,在整個軟件開發(fā)中更是占據(jù)了重要作用.數(shù)據(jù)庫在整個軟件中扮演的是地基的角色,你要修房子,就要先打好地基,你要做軟件,就要先設計好的數(shù)據(jù)庫.目前數(shù)據(jù)庫幾乎都是關系型數(shù)據(jù)庫,代表的有:SQLServer,目前最新的好像是2008,我不是很喜歡追趕時髦,用的還是2005,不過也很不錯了,在此之前還有2000.
MySQL,最知名的開源數(shù)據(jù)庫之一,我很喜歡它的小巧耐用,學過SQLSERVER數(shù)據(jù)庫再學它,無師自通,易如反掌.
ORACLE.甲骨文公司的產(chǎn)品,大型數(shù)據(jù)庫,正版的一般公司買不起.只有看看了,不過現(xiàn)在Java開發(fā)60%都是會使用到這個數(shù)據(jù)庫,再加上現(xiàn)在甲骨文已經(jīng)把sun公司收購了,JAVA和ORACLE得關系更加曖昧,各位得多花些時間在這上面了.除了這些,你還應該了解一些桌面應用軟件開發(fā)用到的數(shù)據(jù)庫,比如說sqlite。你在制作安裝程序的時候可以把這個數(shù)據(jù)庫打包進你的安裝程序。
網(wǎng)頁編程基礎:
網(wǎng)頁編程基礎要學的內容也比較多,但主要集中在以下這三個技術之上,大家每天看的各種樣式的網(wǎng)頁都是它們呈現(xiàn)的:HTML:超文本標記語言CSS:層疊樣式表Javascript:瀏覽器客戶端腳本語言現(xiàn)在更是流行各種Javascript庫,比如:Jquery、ExtJs等,你要是會其中的某一個庫的使用,找工作soeasy。
J2ME:如果你在學習了以上技術還不過癮,可以再學習手機程序的開發(fā),就我個人看來,開發(fā)手機程序技術其實蠻簡單的,難點在于優(yōu)化,比如怎么讓你寫的程序盡量的節(jié)約手機資源,“代碼誠可貴,手機價更高“,所以不得不比PC機多考慮很多成本和實用性問題。J2ME的學習的話,切忌不要單純的再模擬器上測試,一定要找真機測試,真機和模擬器的效果之間差別是很大的。更多手機開發(fā)技術,有興趣的朋友可以和我一起探討。
開發(fā)工具:開發(fā)工具的選擇主要還是看大家的習慣,我個人比較喜歡使用eclispe,功能很強大,也很好拓展其他的功能。當讓初學你也可以選擇JCreator,或者最好就直接用記事本。等你熟悉了Java代碼之后,就可以使用JBuilder、eclispe或者netbeans這一類的工具了。
先說到這里先,以后大家一起完善這個帖子。盡量再給大家整理一些學習的資源在這里。也歡迎大家一起整理我文章中提到的一些技術資源和開發(fā)工具。最后,再和大家分享一句話:生命欣欣向榮,唯奮斗不息。也和大家分享一幅Java學習路線圖:
Java學習