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