怎麼學習Java,這是不少新手常常會問個人問題,如今我簡單描述下一個Java初學者到就業要學到的一些東西:
首先要明白Java體系設計到得三個方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition,咱們常常說到的JDK,就主要指的這個,它是三者的基礎,屬於桌面級應用開發,這部分若是學得好很容易拓展J2EE和J2ME。J2ME,The Micro Edition of the Java 2 Platform。主要用於嵌入式Java,如手機,PDA等等。J2EE,Java 2 Platform,Enterprise Edition,就是所謂的企業級Java,適合企業的大型應用開發。
J2SE:
新手最初學習的時候先要從J2SE開始學起,所包含的內容主要分爲:面向對象概念的理解、Java基本語法的學習,Java桌面圖形界面應用程序的開發,掌握經常使用的Java API等(關鍵是要學會怎樣查閱)。
重點:Java基本語法(循環結構,數據類型,數組,運算符等)、Swing,awt,事件機制、文件輸入輸出流處理等
難點:面向對象思想的理解(接口、類等)、線程、socket網絡編程等
視頻教程推薦:孫鑫的Java基礎視頻教程、張孝祥的Java基礎視頻教程,講的都很細,並且這兩位老師在教學方面都有很好的經驗。
J2EE:
在學習了J2SE以後,你能夠嘗試着慢慢過渡到J2EE,固然,學習J2EE海須要不少非JAVA技術的支撐,好比數據庫技術,網頁編程技術等等,待會我會詳細介紹這兩方面的內容。J2EE有三個必學的框架,若是你說你學了J2EE,但又不會這三個框架的話,那會讓人笑掉大牙,這三個框架分別是Struts、Spring和Hibernate,雖然這三個框架應用很廣,但不表明這三個框架就表明了J2EE,J2EE還有不少其餘的東西,好比EJB,做爲一款重量級(此重量級不是指重量級選手那個意思,此重量級非彼重量級)框架,雖然這個應用慢慢的再被其餘框架所取代,但EJB3.0的出現也給它帶回一些生機,做爲一個分佈式應用的框架,也是你們要去學習和了解的知識。
固然,剛纔說到J2EE包含的範圍很廣,即便我把我所瞭解的全部技術說出來,也並不能表明J2EE,這是一個很深很廣的學問,須要你們之後再工做的時候慢慢去發現了。我所瞭解的還包括:
JDBC:Java數據庫鏈接對象,基礎中的基礎,Hibernate也只是對它的封裝而已
JNDI: Java 命名與目錄接口,J2EE重要規範之一
EJBS: 上面已經提到過了
RMI: 提供遠程調用方法的支持,主要用於程序分佈式開發
JMS: Java消息服務,中間件技術
JAVA IDL: 提供J2EE平臺與CORBA交互能力和互聯能力的技術
JTS: 組件事務監視器
JTA: 事務劃分的一個技術
JAVAMAIL: Java中的郵件技術
JAF: Java啓動框架,沒研究過
Log4j,一款日誌處理的框架應用
Junit:單元測試的好幫手
freemarker、velocity:兩款不錯的模板引擎
與Flash的交互Flex:目前不少的SNS應用就是使用到了這個技術
Web services:想知道咱們論壇天氣預報的效果是怎麼作的嗎?請關注這個技術
SOA:面向服務架構,將來技術發展的趨勢之一
……
不過前面介紹到得這些都不是J2EE的基礎,是屬於框架應用級別的.要真正把上面說到的知識掌握好,仍是的學習J2EE最核心的東西:JDBC、JSP、servlet和JavaBean,後面三個也是學習SSH的基礎(Struts/Spring/Hibernate的簡稱).鑑於J2EE的內容太過複雜,建議你們最初只學習: JSP, servlet和JavaBean,等這個基礎掌握好再把SSH學習了,再對其餘J2EE技術有個大體的瞭解就能夠出去找工做了。固然,找工做的前提除了把Java學習好,還會有一些其餘的技術也是必需要掌握的。 sql-_- 我很簡單,Java卻要求我學這麼多複雜的東西。除了這些技術的東西,在這階段,你們更多的是會接觸到好比設計模式的東西,好比工廠模式、橋樑模式、單例模式等等,還要學習建模思想(好比UML建模等等)和軟件生命週期等等。這些是昇華你們編程思想的手段和途徑。
數據庫技術:
數據庫幾乎是程序中不可或缺的一部分,在整個軟件開發中更是佔據了重要做用.數據庫在整個軟件中扮演的是地基的角色,你要修房子,就要先打好地基,你要作軟件,就要先設計好的數據庫.目前數據庫幾乎都是關係型數據庫,表明的有:
SQL Server,目前最新的好像是2008,我不是很喜歡追趕時髦,用的仍是2005,不過也很不錯了,在此以前還有2000.
MySQL,最知名的開源數據庫之一,我很喜歡它的小巧耐用,學過SQL SERVER數據庫再學它,無師自通,易如反掌.
ORACLE.甲骨文公司的產品,大型數據庫,正版的通常公司買不起.只有看看了,不過如今Java開發60%都是會使用到這個數據庫,再加上如今甲骨文已經把sun公司收購了,JAVA和ORACLE得關係更加曖昧,各位得多花些時間在這上面了.
除了這些,你還應該瞭解一些桌面應用軟件開發用到的數據庫,好比說sqlite。你在製做安裝程序的時候能夠把這個數據庫打包進你的安裝程序。
網頁編程基礎:
網頁編程基礎要學的內容也比較多,但主要集中在如下這三個技術之上,你們天天看的各類樣式的網頁都是它們呈現的:
HTML:超文本標記語言
CSS:層疊樣式表
Javascript:瀏覽器客戶端腳本語言
如今更是流行各類JavaScript庫,好比:Jquery、ExtJs等,你要是會其中的某一個庫的使用,找工做so easy。
J2ME:
若是你在學習了以上技術還不過癮,能夠再學習手機程序的開發,就我我的看來,開發手機程序技術其實蠻簡單的,難點在於優化,好比怎麼讓你寫的程序儘可能的節約手機資源,「代碼誠難得,手機價更高「,因此不得不比PC機多考慮不少成本和實用性問題。J2ME的學習的話,切忌不要單純的再模擬器上測試,必定要找真機測試,真機和模擬器的效果之間差異是很大的。更多手機開發技術,有興趣的朋友能夠和我一塊兒探討。
開發工具:
開發工具的選擇主要仍是看你們的習慣,我我的比較喜歡使用eclispe,功能很強大,也很好拓展其餘的功能。當讓初學你也能夠選擇JCreator,或者最好就直接用記事本。等你熟悉了Java代碼以後,就可使用JBuilder、eclispe或者netbeans這一類的工具了。
先說到這裏先,之後你們一塊兒完善這個帖子。儘可能再給你們整理一些學習的資源在這裏。也歡迎你們一塊兒整理我文章中提到的一些技術資源和開發工具。最後,再和你們分享一句話:生命欣欣向榮,惟奮鬥不息。也和你們分享一幅Java學習路線圖:
數據庫