很多網友問我學習
Java
有沒有什麼捷徑
,
我說
“
無他,唯手熟爾
”
。但是我卻很願意將自己學習的一些經驗寫出來,以便後來者少走彎路
,
幫助別人是最大的快樂嘛!
要想學好
Java
,首先要知道
Java
的大致分類。我們知道,自從
Sun
推出
Java
以來,就力圖使之無所不包,所以
Java
發展到現在,按應用來分主要分爲三大塊:
J2SE,J2ME
和
J2EE,
這也就是
Sun
ONE(Open Net Environment)
體系。
J2SE
就是
Java2
的標準版,主要用於桌面應用軟件的編程;
J2ME
主要應用於嵌入是系統開發,如手機和
PDA
的編程;
J2EE
是
Java2
的企業版,主要用於分佈式的網絡程序的開發,如電子商務網站和
ERP
系統。
J2SE
開發桌面應用軟件比起
VC,VB,DEPHI
這些傳統開發語言來說,優勢好象並不明顯。
J2ME
對於初學者來說,好象又有點深奧,而且一般開發者很難有開發環境。所以現在應用最廣泛又最好學的就是
J2EE
了。
J2EE
又包括許多組件,如
Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail
等。要學習起來可不是一兩天的事。
那麼又該如何學習
J2EE
呢?當然
Java
語法得先看一看的,
I/O
包,
Util
包,
Lang
包你都熟悉了嗎?然後再從
JSP
學起。如果你學過
HTML
,那麼事情要好辦的多,如果沒有,那你快去補一補
HTML
基礎吧。其實
JSP
中的
Java
語法也不多,它更象一個腳本語言,有點象
ASP
。然後你就該學一學
Servlet
了。
Servlet
就是服務器端小程序,他負責生成發送給客戶端的
HTML
文件。
JSP
在執行時,也是先轉換成
Servlet
再運行的。雖說
JSP
理論上可以完全取代
Servlet
,這也是
SUN
推出
JSP
的本意,可是
Servlet
用來控制流程跳轉還是挺方便的,也令程序更清晰。接下來你應該學習一下
Javabean
了,可能你早就看不管
JSP
在
HTML
中嵌
Java
代碼的混亂方式了,這種方式跟
ASP
又有什麼區別呢?還好,
SUN
提供了
Javabean
可以把你的
JSP
中的
Java
代碼封裝起來,便於調用也便於重用。接着就是
EJB
了,
EJB
就是
Enterprise
JavaBean,
看名字好象它是
Javabean
,可是它和
Javabean
還是有區別的。它是一個體繫結構,你可以搭建更安全、更穩定的企業應用。它的大量代碼已由中間件(也就是我們常聽到的
Weblogic,Websphere
這些
J2EE
服務器)完成了,所以我們要做的程序代碼量很少,大部分工作都在設計和配置中間件上。至於
JDBC
,就不用我多說了,你如果用
java
編過存取數據庫的程序,就應該很熟悉。還有,如果你要用
Java
編髮送電子郵件的程序,你就得看看
Javamail
了。
好了,對
Java
和
J2EE
有了一些基本概念之後,你就應該編一些程序了,千萬不要紙上談兵哦。最好找一些有實例且帶光盤的書來看,這樣看到好的程序就可以直接
Ctrl+C
再
Ctrl+V
,也不用勞您老大架再親自把它再輸一遍吧,再說直接複製還不用怕出錯,何樂而不爲呢!還有就是要經常上一些好的
Java
編程文章,有好的文章要
Cut
下來,有問題儘管問,只要問題不是太傻,一般高手都會回答你的。下面介紹幾個好的
Java
方面的編程網站:
CSDN
論壇
http://www.csdn.net/
中國最有名的技術論壇,《程序員》雜誌就是他們出版的,你可以在上面提出問題,馬上就有人回答你,如果你覺得好,你可以給那人加分;
Java
研究組
http://www.javaresearch.org/
上面有很多原創文章,高手還是挺多的;
Java
開發者
http://www.chinajavaworld.com/
那裏
Java
資料比較全;
java.com.cn http://www.java.com.cn/
看這域名就知道有多牛,註冊用戶快接近一萬了,同時在線人數也在一千左右,人氣很旺的;
IBM
的開發者網
http://www-900.ibm.com/developerWorks/cn/java/index.shtml
IBM
永遠的藍色巨人;
那麼我書也看了,程序也做了,別人問我的問題我都能解決了,是不是就成爲高手了呢?當然沒那麼簡單,這只是萬里長征走完了第一步。不信?那你出去接一個項目,你知道怎麼下手嗎,你知道怎麼設計嗎,你知道怎麼組織人員進行開發嗎?你現在腦子裏除了一些散亂的代碼之外,可能再沒有別的東西了吧!你現在最缺的是實際的工作經驗,而不是書本上那些憑空想出來的程序。所以你快去找一份
Java
的編程工作來做吧(如果是在校學生可以去做兼職啊),在實踐中提高自己,那纔是最快的。不過你得祈禱在公司裏碰到一個高手,而且他還願意不厭其煩地教你,這樣好象有點難哦!
還有一個辦法就是讀開放源碼的程序了。我們知道開放源碼大都出自高手,他們設計合理,考慮周到,再加上有廣大的程序員參與,代碼的價值自然是字字珠嘰,鏗鏘有力(對不起,最近《金裝四大才子》看多了)。學
Java
必讀的兩個開源程序就是
Jive
和
Pet
Store.
。
Jive
是國外一個非常著名的
BBS
程序,完全開放源碼。論壇的設計採用了很多先進的技術,如
Cache
、用戶認證、
Filter
、
XML
等,而且論壇完全屏蔽了對數據庫的訪問,可以很輕易的在不同數據庫中移植。論壇還有方便的安裝和管理程序,這是我們平時編程時容易忽略的一部份(中國程序員一般只注重編程的技術含量,卻完全不考慮用戶的感受,這就是我們與國外軟件的差距所在)。
Jive
的資料在很多網站上都有,大家可以找來研究一下。相信你讀完代碼後,會有脫胎換骨的感覺。遺憾的是
Jive
從
2.5
以後就不再無條件的開放源代碼,同時有
licence
限制。不過幸好還有中國一流的
Java
程序員關注它,外國人不開源了,中國人就不能開源嗎?這裏向大家推薦一個漢化的
Jive
版本
—J
道。
Jive(J
道版
)
是由中國
Java
界大名鼎鼎的
banq
在
Jive2.1
版本基礎上改編而成
,
全中文,增加了一些實用功能,如貼圖,用戶頭像和用戶資料查詢等,而且有一個開發團隊在不斷升級。你可以訪問
banq
的網
http://www.jdon.com/
去下載,或到同濟技術論壇的服務器上
ftp://nro.shtdu.edu.cn
去下,安裝上有什麼問題,可以到論壇上去提問。
Pet
Store.
(寵物店)是
SUN
公司爲了演示其
J2EE
編程規範而推出的開放源碼的程序,應該很具有權威性,想學
J2EE
和
EJB
的朋友不要錯過了。
你一定會高興地說,哈哈,原來成爲
Java
高手就這麼簡單啊
!
記得我也曾碰到過一個項目經理,號稱
Java
很簡單,只要三個月就可以學會。其實說這種話的人就如當年小日本號稱
“
三個月拿下中國
”
一樣大言不慚。不是我潑你冷水,你現在只是學到了
Java
的骨架,卻還沒有學到
Java
的精髓。接下來你得研究設計模式了。設計模式是高級程序員真正掌握面向對象核心思想的必修課。設計模式並不是一種具體
"
技術
",
它講述的是思想,它不僅僅展示了接口或抽象類在實際案例中的靈活應用和智慧,讓你能夠真正掌握接口或抽象類的應用,從而在原來的
Java
語言基礎上躍進一步,更重要的是,設計模式反覆向你強調一個宗旨:要讓你的程序儘可能的可重用。關於設計模式的資料,還是向大家推薦
banq
的網
http://www.jdon.com/
,他把
GOF
的
23
種模式以通俗易懂的方式詮釋出來,純
Java
描述,真是經典中的經典。有時間再研究一下
MVC
結構(把
Model-View-Control
分離開的設計思想)吧,現在很流行的
Structs
就是它的一種實現方式,不過
Structs
用起來實在是很繁,我們只要學習其精髓即可,我們完全可以設計自己的
MVC
結構。然後你再研究一下軟件
Refactoring(
重整
)
和極限
XP
編程,相信你又會上一個臺階。
做完這些,你不如整理一下你的
Java
代碼,把那些經典的程序和常見的應用整理出來,再精心打造一番,提高其重用性和可擴展性。你再找幾個志同道合的朋友成立一個工作室吧,你可以去承接一些項目做了,一開始可能有些困難,可是你有技術積累,又考慮周全,接下項目來可以迅速作完,相信大家以後都會來找你的,所以
Money
就嘩啦啦的來了。。。。。。
當然你也可以參加一些開源項目,一方面可以提高自己,另一方面也是爲中國軟件事業做貢獻嘛!開發者在互聯網上用
CVS
合作開發,用
QQ,MSN,E-mail
討論聯繫,天南海北的程序員分散在各地卻同時開發同一個軟件,是不是很有意思呢?
下面介紹兩個好的開源項目網站:
湖北省軟件公共開發平
http://gro.clinux.org/
共創聯
http://cosoft.org.cn/
哇,好高興哦,我終於成爲高手了!非也,非也。古人云:
“
識時務者爲俊傑
”
。你知道計算機界現在的發展形勢嗎?你知道微軟的
.NET
藍圖和
SUN
ONE
計劃之間的明爭暗鬥嗎
?
你知道計算機技術將向何處發展嗎
?
其實從各大計算機廠商最近的動作
,
都可以看出來
“Web
服務將是下一代互聯網應用的制高點
”
,而微軟的
.NET
藍圖和
SUN
ONE
計劃的鬥爭焦點,也就是
Web
服務。
Web
服務就是一個嶄新的分佈式計算模型,它是一系列標準的綜合(
XML,SOAP,UDDI,WSDL
和
WSFL
等)。它使得不同語言編寫的軟件能夠輕易的集成起來,使網絡資源和
Web
站點變成一種服務而不是混亂的垃圾場。不遠的將來,我們就可以在家裏點擊一下鼠標,就可以完成出門旅遊的全部準備工作,包括定飛機票,定旅遊線路,定好房間等。請注意,這所有的一切都是
Web
站點間自動完成的,再也不用象現在一樣,表面上是電子商務,實際上很多環節都是人工操作。也許你會覺得這是天方夜談,不過就近的說,你也很有可能承接一個項目,要集成兩個企業的
ERP
系統。很有可能上游企業的系統是用
Dephi
編的,而下游企業的系統是用
Java
編的。你說你是
Java
高手,大家都看者你怎麼做呢。所以啊,你還得學習新技術,如
Web
服務,而且你
Dephi
也要懂一點吧(
Dephi6
現在已經提供
Web
服務的控件了)。
你編的
Java
系統,可能要和
.NET
集成,所以你
.NET
要懂一點吧?到最後,你可能發現你已經成爲
Java
高手了,但很多時間卻在搞別的技術。太極張三丰裏說,最厲害的招式就是沒有招式,可能就是這個道理吧!
因爲剛剛興起,所以網上
Web
服務的資料不是很多,我還是給大家推薦幾個網站吧:
中國
UDDI
技術聯
http://www.uddi-china.org/
CSDN
的柴曉路專
http://www.csdn.net/develop/author/ColumnAuthor/fennivel/
(注:柴曉路也是互聯網上一個有名的人物,他發表過很多關於
Web
服務的文章,還出了一書,應該稱的上是中國
Web
服務技術的先行者)
IBM
的開發者網絡的
XML&Web Service
專欄
:
http://www-900.ibm.com/developerWorks/cn/xml/index.shtml?csdn
IBM
可是
Web
服務的力推者
嗚
…
你費勁千心萬苦,總算成爲
Java
高手了,怎叫人不由喜極而泣呢!是啊,真不容易,真不簡單,真叫人感動啊!那麼打個電話告訴我吧,什麼?我的電話號碼是多少?昏到,你打電話問不就知道了嗎,真是的
……