Java SE學習之路

我們知道Java有三個方向,JavaSE,JavaME,JavaEE(老程序員可能會叫J2EE等,不過SUN已經改名了)。JavaME主要是嵌入式與遊戲開發。那我們先看JavaSE,因爲只有學好了JavaSE纔可以學JavaEE,所以說JavaSE是JavaEE的根基。
Java的歷史當然得了解,但除去與別人討論賣弄工作基本用不到,您可以暫時放放,那天累了調劑學習。那能知道他的歷史呢?google,baidu搜吧!以後要養成個意識,凡是不瞭解想明白的東西就上google,baidu,不僅僅限於編程知識。
下面我們詳細看JavaSE學習路線:
1.Java跨平臺原理,JDK的部署與HelloWorld。您得知道Java跨平臺原理,知道怎麼配置環境變量以及編寫一個HelloWorld程序。
2.程序的基本語法,比如什麼是常量變量流程控制循環等任何一門編程語言都必備的知識,再學習下冒泡啊遞歸啊等算法,然後給數組排個序,打印個或實心或空心三角形等這些玩意。如果您學過C,C++這會非常輕鬆。
3.學習Java的OOP,這是重點也是難點。你們要想聽一遍課就熟練應用這些知識基本是不可能的。一個優秀的老師能把這些給你講清楚就已經非常了不起了,同樣一個優秀的學生能把這些概念背下來在看到類似的代碼知道原因也非常了不起。至於創造,建議先別要求那麼高。先把OOP衆多概念背下來,以後JavaEE的學習中,在項目代碼中再體會理解。所以這部分重點是理解加背概念。下面是平時講課順序
a) 學習類和對象的知識,知道什麼是類與對象以及在java中如何創建類與對象。
b) 包的知識
c) java中數據類型的分類(值類型,引用類型)
d) 聲明對象與創建對象
e) java中方法參數的兩種傳遞方式。
f) 構造方法
g) 繼承以及繼承的特點(this與super關鍵字)
h) 封裝,包括訪問修飾符
i) 抽象類,接口
j) 多態(方法重載與方法重寫),知道抽象類接口都是爲多態服務
k) static與final關鍵字
l) 用以上的知識做一個面向對象的某某管理系統
4.異常包括分類以及五個關鍵字try catch finally throw throws
5.集合框架
6.到這如果想做個有成就感的程序可以直接學習JDBC,當然這需要您數據庫的知識的支持(比如能建庫建表,會增刪改查的sql語句),然後可以做個控制檯版本的某某管理軟件。當然您這個系統一定要使用vo類,要使用DAO模式,最好能加上接口編寫兩個DAO實現,Statement與PreparedStatement各一個,在此基礎上更深刻的理解OOP編程。
7.設計模式的知識這時您也可以學習一些,瞭解工廠,單態這兩種設計模式,然後使用它重構您上面做好的管理系統。
(到這裏,如果您急的找工作就業,也算小有所成,可以做個合格的小師弟了,然後向大師兄努力,學習JavaWeb;如果您不急着就業,可以把基本功練的更紮實些,可以接着學習下面三部分的知識)
8.多線程編程
9.網絡編程
10.Java中的I/O操作
(以上三部分知識有個共同的特點是相對於前面七點在工作項目代碼中使用很少,但理論還是相當重要,比如作爲程序員您總得知道進程線程的區別聯繫吧,而且好多工具的底層就用到這些知識,比如JavaWeb部分我們使用的WebServer一定是個多線程的容器,它要與客戶端通信一定需要網絡編程,要處理用戶的請求數據給客戶端相應數據一定需要流來讀寫,所以這部分知識必須學,只不過您可以先暫時放放以後再學)
11.AWT-SWING/SWT:
有會問java是不是不能進行C/S結構程序開發,當然可以了。Java開發C/S 結構程序可以使用兩個技術,一個是AWT/SWING,這個是SUN搞出來的,比如Java以前非常火的一個IDE工具JBuilder就是用它開發的;還有一個是SWT,這個最早是由IBM發明的,用的語言還是JAVA,但API已經與SWING不同了,比如現在非常好用的Eclipse就是用它開發的。
用java開發C/S程序相對於winform除了能誇平臺並沒有什麼優勢可言,比如複雜的技術,比如沒有很好的開發工具支持快速開發(jb還可以eclipse生成的代碼太亂了),比如運行超多內存的佔用,所以現在使用Java開發C/S程序的少之有少,企業的招聘崗位少之有少,那就不講不學了吧!但您搞軟件開發總得寫過些C/S程序吧,總得知道C/S下如何做權限,如何共享數據這些基本知識吧,而且AWT/SWING中用到了很多優秀OO設計思想,更高興的是學習完這可以把我們前面做的控制檯版本的管理系統掛上形成一個可給用戶交互使用的系統,所以您有時間,學吧,急着找工作,就別學了(如果找工作順利,那以後估計永遠也不會學了。)。
12.Java的新特性
以前喜歡說JDK1.5的新特性,現在Java7也出來了,也不算啥新特性,這部分知識包括:static import,泛型,註解,可變參數等,比如泛型應該在講解集合框架中說明,這部分也應該學習,但註解建議瞭解。
13.反射
反射的知識也屬於JavaSE的內容,也建議暫時不要學習,等到高級階段,自己有一些代碼經驗積累後再詳細學習,反射的代碼雖然工作項目代碼使用較少,但很多框架或者你搞底層開發也一定是用得到的。
總結:以上的學習路線雖然寫了13條,但如果您想速成的話先學習前面七條就可以了,或者從另外一個角度說,掌握了前面七條暫時可以像更高的階段JavaWeb進發了!

Java學習路線

當然,剛纔說到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學習好,還會有一些其他的技術也是必須要掌握的。

-_- 我很簡單,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這一類的工具了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章