自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

java基礎(chǔ)之談學(xué)習(xí)路線(xiàn)

開(kāi)發(fā) 后端
本文介紹的是java的學(xué)習(xí)路線(xiàn),希望對(duì)你有幫助,一起來(lái)看。

JAVA是一種平臺(tái),也是一種程序設(shè)計(jì)語(yǔ)言,如何學(xué)好程序設(shè)計(jì)不僅僅適用于JAVA,對(duì)C++等其他程序設(shè)計(jì)語(yǔ)言也一樣管用。有編程高手認(rèn)為,JAVA也好C也好沒(méi)什么分別,拿來(lái)就用。為什么他們能達(dá)到如此境界?我想是因?yàn)榫幊陶Z(yǔ)言之間有共通之處,領(lǐng)會(huì)了編程的精髓,自然能夠做到一通百通。如何學(xué)習(xí)程序設(shè)計(jì)理所當(dāng)然也有許多共通的地方。

一、軟件開(kāi)發(fā)學(xué)習(xí)路線(xiàn)

兩千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒進(jìn)也不保守并非中庸之道,而是找尋學(xué)習(xí)軟件開(kāi)發(fā)的正確路線(xiàn)與規(guī)律。

從軟件開(kāi)發(fā)人員的生涯規(guī)劃來(lái)講,我們可以大致分為三個(gè)階段,軟件工程師→軟件設(shè)計(jì)師→架構(gòu)設(shè)計(jì)師或項(xiàng)目管理師。不想當(dāng)元帥的士兵不是好士兵,不想當(dāng)架構(gòu)設(shè)計(jì)師或項(xiàng)目管理師的程序員也不是好的程序員。我們應(yīng)該努力往上走。讓我們先整理一下開(kāi)發(fā)應(yīng)用軟件需要學(xué)習(xí)的主要技術(shù)。

A.基礎(chǔ)理論知識(shí),如操作系統(tǒng)、編譯原理、數(shù)據(jù)結(jié)構(gòu)與算法、計(jì)算機(jī)原理等,它們并非不重要。如不想成為計(jì)算機(jī)科學(xué)家的話(huà),可以采取"用到的時(shí)候再來(lái)學(xué)"的原則。

B.一門(mén)編程語(yǔ)言,現(xiàn)在基本上都是面向?qū)ο蟮恼Z(yǔ)言,JAVA/C++/C#等等。如果做WEB開(kāi)發(fā)的話(huà)還要學(xué)習(xí)HTML/Jav**ript等等。

C.一種方法學(xué)或者說(shuō)思想,現(xiàn)在基本都是面向?qū)ο笏枷耄∣OA/OOD/設(shè)計(jì)模式)。由此而衍生的基于組件開(kāi)發(fā)CBD/面向方面編程AOP等等。

D.一種關(guān)系型數(shù)據(jù)庫(kù),ORACLE/SqlServer/DB2/MySQL等等

E.一種提高生產(chǎn)率的IDE集成開(kāi)發(fā)環(huán)境JBuilder/Eclipse/VS.NET等。

F.一種UML建模工具,用ROSE/VISIO/鋼筆進(jìn)行建模。

G.一種軟件過(guò)程,RUP/XP/CMM等等,通過(guò)軟件過(guò)程來(lái)組織軟件開(kāi)發(fā)的眾多活動(dòng),使開(kāi)發(fā)流程專(zhuān)業(yè)化規(guī)范化。當(dāng)然還有其他的一些軟件工程知識(shí)。

H.項(xiàng)目管理、體系結(jié)構(gòu)、框架知識(shí)。

正確的路線(xiàn)應(yīng)該是:B→C→E→F→G→H。

還需要補(bǔ)充幾點(diǎn):

1).對(duì)于A與C要補(bǔ)充的是,我們應(yīng)該在實(shí)踐中逐步領(lǐng)悟編程理論與編程思想。新技術(shù)雖然不斷涌現(xiàn),更新速度令人眼花燎亂霧里看花;但萬(wàn)變不離其宗,編程理論與編程思想的變化卻很慢。掌握了編程理論與編程思想你就會(huì)有撥云見(jiàn)日之感。面向?qū)ο蟮乃枷朐谀壳皝?lái)講是相當(dāng)關(guān)鍵的,是強(qiáng)勢(shì)技術(shù)之一,在上面需要多投入時(shí)間,給你的回報(bào)也會(huì)讓你驚喜。

2).對(duì)于數(shù)據(jù)庫(kù)來(lái)說(shuō)是獨(dú)立學(xué)習(xí)的,這個(gè)時(shí)機(jī)就由你來(lái)決定吧。

3).編程語(yǔ)言作為學(xué)習(xí)軟件開(kāi)發(fā)的主線(xiàn),而其余的作為輔線(xiàn)。

4).軟件工程師著重于B、C、E、D;軟件設(shè)計(jì)師著重于B、C、E、D、F;架構(gòu)設(shè)計(jì)師著重于C、F、H。

二、 JAVA學(xué)習(xí)路線(xiàn)

1、 基礎(chǔ)語(yǔ)法及JAVA原理

基礎(chǔ)語(yǔ)法和JAVA原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當(dāng)危險(xiǎn)的。學(xué)習(xí)JAVA也是如此,必須要有扎實(shí)的基礎(chǔ),你才能在J2EE、J2ME領(lǐng)域游刃有余。參加SCJP(SUN公司認(rèn)證的JAVA程序員)考試不失為一個(gè)好方法,原因之一是為了對(duì)得起你交的1200大洋考試費(fèi),你會(huì)更努力學(xué)習(xí),原因之二是SCJP考試能夠讓你把基礎(chǔ)打得很牢靠,它要求你跟JDK一樣熟悉JAVA基礎(chǔ)知識(shí);但是你千萬(wàn)不要認(rèn)為考過(guò)了SCJP就有多了不起,就能夠獲得軟件公司的青睞,就能夠獲取高薪,這樣的想法也是很危險(xiǎn)的。獲得"真正"的SCJP只能證明你的基礎(chǔ)還過(guò)得去,但離實(shí)際開(kāi)發(fā)還有很長(zhǎng)的一段路要走。

2、 OO思想的領(lǐng)悟

掌握了基礎(chǔ)語(yǔ)法和JAVA程序運(yùn)行原理后,我們就可以用JAVA語(yǔ)言實(shí)現(xiàn)面向?qū)ο蟮乃枷肓?。面向?qū)ο?,是一種方法學(xué);是獨(dú)立于語(yǔ)言之外的編程思想;是CBD基于組件開(kāi)發(fā)的基礎(chǔ);屬于強(qiáng)勢(shì)技術(shù)之一。當(dāng)以后因工作需要轉(zhuǎn)到別的面向?qū)ο笳Z(yǔ)言的時(shí)候,你會(huì)感到特別的熟悉親切,學(xué)起來(lái)像喝涼水這么簡(jiǎn)單。

使用面向?qū)ο蟮乃枷脒M(jìn)行開(kāi)發(fā)的基本過(guò)程是:

  • 調(diào)查收集需求。
  • 建立用例模型。
  • 從用例模型中識(shí)別分析類(lèi)及類(lèi)與類(lèi)之間的靜態(tài)動(dòng)態(tài)關(guān)系,從而建立分析模型。
  • 細(xì)化分析模型到設(shè)計(jì)模型。
  • 用具體的技術(shù)去實(shí)現(xiàn)。
  • 測(cè)試、部署、總結(jié)。

3、 基本API的學(xué)習(xí)

進(jìn)行軟件開(kāi)發(fā)的時(shí)候,并不是什么功能都需要我們?nèi)?shí)現(xiàn),也就是經(jīng)典名言所說(shuō)的"不需要重新發(fā)明輪子"。我們可以利用現(xiàn)成的類(lèi)、組件、框架來(lái)搭建我們的應(yīng)用,如SUN公司編寫(xiě)好了眾多類(lèi)實(shí)現(xiàn)一些底層功能,以及我們下載過(guò)來(lái)的JAR文件中包含的類(lèi),我們可以調(diào)用類(lèi)中的方法來(lái)完成某些功能或繼承它。那么這些類(lèi)中究竟提供了哪些方法給我們使用?方法的參數(shù)個(gè)數(shù)及類(lèi)型是?類(lèi)的構(gòu)造器需不需要參數(shù)?總不可能SUN公司的工程師打國(guó)際長(zhǎng)途甚至飄洋過(guò)海來(lái)告訴你他編寫(xiě)的類(lèi)該如何使用吧。他們只能提供文檔給我們查看,JAVADOC文檔(參考文獻(xiàn)4.4)就是這樣的文檔,它可以說(shuō)是程序員與程序員交流的文檔。

基本API指的是實(shí)現(xiàn)了一些底層功能的類(lèi),通用性較強(qiáng)的API,如字符串處理/輸入輸出等等。我們又把它成為類(lèi)庫(kù)。熟悉API的方法一是多查JAVADOC文檔(參考文獻(xiàn)4.4),二是使用JBuilder/Eclipse等IDE的代碼提示功能。

4、 特定API的學(xué)習(xí)

JAVA介入的領(lǐng)域很廣泛,不同的領(lǐng)域有不同的API,沒(méi)有人熟悉所有的API,對(duì)一般人而言只是熟悉工作中要用到的API。如果你做界面開(kāi)發(fā),那么你需要學(xué)習(xí)Swing/AWT/SWT等API;如果你進(jìn)行網(wǎng)絡(luò)游戲開(kāi)發(fā),你需要深入了解網(wǎng)絡(luò)API/多媒體API/2D3D等;如果你做WEB開(kāi)發(fā),就需要熟悉Servlet等API啦??傊?,需要根據(jù)工作的需要或你的興趣發(fā)展方向去選擇學(xué)習(xí)特定的API。

5、 開(kāi)發(fā)工具的用法

在學(xué)習(xí)基礎(chǔ)語(yǔ)法與基本的面向?qū)ο蟾拍顣r(shí),從鍛煉語(yǔ)言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時(shí)候不要急于上手JBuilder/Eclipse等集成開(kāi)發(fā)環(huán)境,以免過(guò)于關(guān)注IDE的強(qiáng)大功能而分散對(duì)JAVA技術(shù)本身的注意力。過(guò)了這一階段你就可以開(kāi)始熟悉IDE了。

程序員日常工作包括很多活動(dòng),編輯、編譯及構(gòu)建、調(diào)試、單元測(cè)試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項(xiàng)活動(dòng)都有專(zhuān)門(mén)的工具,如果獨(dú)立使用這些工具的話(huà),你將會(huì)很痛苦,你需要在堆滿(mǎn)工具的任務(wù)欄上不斷的切換,效率很低下,也很容易出錯(cuò)。在JBuilder、Eclipse等IDE中已經(jīng)自動(dòng)集成編輯器、編譯器、調(diào)試器、單元測(cè)試工具JUnit、自動(dòng)構(gòu)建工具ANT、版本控制工具CVS、DOC文檔生成與更新等等,甚至可以把UML建模工具也集成進(jìn)去,又提供了豐富的向?qū)椭煽蚣艽a,讓我們的開(kāi)發(fā)變得更輕松。應(yīng)該說(shuō)IDE發(fā)展的趨勢(shì)就是集成軟件開(kāi)發(fā)中要用到的幾乎所有工具。

從開(kāi)發(fā)效率的角度考慮,使用IDE是必經(jīng)之路,也是從一個(gè)學(xué)生到一個(gè)職業(yè)程序員轉(zhuǎn)變的里程碑。

JAVA開(kāi)發(fā)使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder占有的市場(chǎng)份額是最大的。JBuilder在近幾年來(lái)一直是JAVA集成開(kāi)發(fā)環(huán)境中的霸主,它是由備受程序員尊敬的Borland公司開(kāi)發(fā),在硝煙彌漫的JAVAIDE大戰(zhàn)中,以其快速的版本更新?lián)魯BM的VisualAgeforJAVA等而成就一番偉業(yè)。IBM在VisualAgeforJAVA上已經(jīng)無(wú)利可圖之下,干脆將之貢獻(xiàn)給開(kāi)源社區(qū),成為Eclipse的前身,真所謂"柳暗花明又一村"。浴火重生的Eclipse以其開(kāi)放式的插件擴(kuò)展機(jī)制、免費(fèi)開(kāi)源獲得廣大程序員(包括幾乎所有的骨灰級(jí)程序員)的青睞,極具發(fā)展?jié)摿Α?/p>

6、 學(xué)習(xí)軟件工程

對(duì)小型項(xiàng)目而言,你可能認(rèn)為軟件工程沒(méi)太大的必要。隨著項(xiàng)目的復(fù)雜性越來(lái)越高,軟件工程的必要性才會(huì)體現(xiàn)出來(lái)。

三、 學(xué)習(xí)要點(diǎn)

確立的學(xué)習(xí)路線(xiàn)之后,我們還需要總結(jié)一下JAVA的學(xué)習(xí)要點(diǎn),這些要點(diǎn)在前文多多少少提到過(guò),只是筆者覺(jué)得這些地方特別要注意才對(duì)它們進(jìn)行匯總,不要嫌我婆婆媽媽啊。

1、 勤查API文檔

當(dāng)程序員編寫(xiě)好某些類(lèi),覺(jué)得很有成就感,想把它貢獻(xiàn)給各位苦難的同行。這時(shí)候你要使用"javadoc"工具(包含在JDK中)生成標(biāo)準(zhǔn)的JAVADOC文檔,供同行使用。J2SE/J2EE/J2ME的DOC文檔是程序員與程序員交流的工具,幾乎人手一份,除了菜鳥(niǎo)之外。

J2SEDOC文檔官方下載地址:http://java.sun.com/j2se/1.5.0/download.jsp,你可以到google搜索CHM版本下載。也可以在線(xiàn)查看:http://java.sun.com/j2se/1.5.0/docs/api/index.html。

對(duì)待DOC文檔要像毛主席語(yǔ)錄,早上起床念一遍,吃飯睡覺(jué)前念一遍。

當(dāng)需要某項(xiàng)功能的時(shí)候,你應(yīng)該先查相應(yīng)的DOC文檔看看有沒(méi)有現(xiàn)成的實(shí)現(xiàn),有的話(huà)就不必勞神費(fèi)心了直接用就可以了,找不到的時(shí)候才考慮自己實(shí)現(xiàn)。使用步驟一般如下:

  • 找特定的包,包一般根據(jù)功能組織。
  • 找需要使用類(lèi),類(lèi)命名規(guī)范的話(huà)我們由類(lèi)的名字可猜出一二。
  • 選擇構(gòu)造器,大多數(shù)使用類(lèi)的方式是創(chuàng)建對(duì)象。
  • 選擇你需要的方法。

2、 查書(shū)/google->寫(xiě)代碼測(cè)試->查看源代碼->請(qǐng)教別人

當(dāng)我們遇到問(wèn)題的時(shí)候該如何解決?

這時(shí)候不要急著問(wèn)別人,太簡(jiǎn)單的問(wèn)題,沒(méi)經(jīng)過(guò)思考的問(wèn)題,別人會(huì)因此而瞧不起你??梢韵日艺視?shū),到google中搜一下看看,絕大部分問(wèn)題基本就解決了。而像"某些類(lèi)/方法如何使用的問(wèn)題",DOC文檔就是答案。對(duì)某些知識(shí)點(diǎn)有疑惑是,寫(xiě)代碼測(cè)試一下,會(huì)給你留下深刻的印象。而有的問(wèn)題,你可能需要直接看API的源代碼驗(yàn)證你的想法。萬(wàn)不得已才去請(qǐng)教別人。

3、 學(xué)習(xí)開(kāi)源軟件的設(shè)計(jì)思想

JAVA領(lǐng)域有許多源代碼開(kāi)放的工具、組件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive論壇、PetStore寵物店等等多如牛毛。這些可是前輩給我們留下的瑰寶呀。入寶山而空手歸,你心甘嗎?對(duì)這些工具、框架進(jìn)行分析,領(lǐng)會(huì)其中的設(shè)計(jì)思想,有朝一日說(shuō)不定你也能寫(xiě)一個(gè)XXX框架什么的,風(fēng)光一把。分析開(kāi)源軟件其實(shí)是你提高技術(shù)、提高實(shí)戰(zhàn)能力的便捷方法。

4、 規(guī)范的重要性

沒(méi)有規(guī)矩,不成方圓。這里的規(guī)范有兩層含義。第一層含義是技術(shù)規(guī)范,多到http://www.jcp.org下載JSRXXX規(guī)范,多讀規(guī)范,這是最權(quán)威準(zhǔn)確最新的教材。第二層含義是編程規(guī)范,如果你使用了大量的獨(dú)特算法,富有個(gè)性的變量及方法的命名方式;同時(shí),沒(méi)給程序作注釋?zhuān)燥@示你的編程功底是多么的深厚。這樣的代碼別人看起來(lái)像天書(shū),要理解談何容易,更不用說(shuō)維護(hù)了,必然會(huì)被無(wú)情地掃入垃圾堆。

5、 不局限于JAVA

很不幸,很幸運(yùn),要學(xué)習(xí)的東西還有很多。不幸的是因?yàn)橐獙W(xué)的東西太多且多變,沒(méi)時(shí)間陪老婆家人或女朋友,導(dǎo)致身心疲憊,嚴(yán)重者甚至導(dǎo)致抑郁癥。幸運(yùn)的是別人要搶你飯碗絕非易事,他們或她們需要付出很多才能達(dá)成心愿。

JAVA不要孤立地去學(xué)習(xí),需要綜合學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)、OOP、軟件工程、UML、網(wǎng)絡(luò)編程、數(shù)據(jù)庫(kù)技術(shù)等知識(shí),用橫向縱向的比較聯(lián)想的方式去學(xué)習(xí)會(huì)更有效。如學(xué)習(xí)JAVA集合的時(shí)候找數(shù)據(jù)結(jié)構(gòu)的書(shū)看看;學(xué)JDBC的時(shí)候復(fù)習(xí)數(shù)據(jù)庫(kù)技術(shù);采取的依然是"需要的時(shí)候再學(xué)"的原則。

希望對(duì)你有幫助。

【編輯推薦】

  1. Java中ArrayList和LinkedList區(qū)別
  2. 詳解reflectJava的反射機(jī)制
  3. JAVA技巧心得 學(xué)Java切忌浮躁
  4. 菜鳥(niǎo)入門(mén) java語(yǔ)言學(xué)習(xí)六大要點(diǎn)
  5. javascript的search和match方法

 

 

責(zé)任編輯:于鐵 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2017-03-17 09:12:13

基礎(chǔ)算法路線(xiàn)

2010-02-22 09:43:42

學(xué)習(xí)Python語(yǔ)言

2009-12-23 10:07:57

學(xué)習(xí)WPF

2010-02-02 13:37:12

如何學(xué)習(xí)Python

2010-02-07 15:12:24

學(xué)習(xí)Android

2010-01-21 18:00:59

C++語(yǔ)言

2010-01-18 10:53:26

2010-01-21 17:22:21

VC++

2010-02-03 15:52:02

Python學(xué)習(xí)研究

2010-02-06 13:36:57

學(xué)習(xí)Android程序

2010-04-30 14:31:58

Unix系統(tǒng)

2018-04-23 10:16:29

JavaJavaWeb語(yǔ)言

2010-01-27 16:52:31

C++語(yǔ)言學(xué)習(xí)

2010-01-26 17:53:05

C++入門(mén)學(xué)習(xí)

2012-11-15 16:03:43

2014-08-13 17:09:57

ios學(xué)習(xí)

2010-02-05 17:10:01

Android Ado

2020-01-10 18:25:00

Go語(yǔ)言JavaScript編程語(yǔ)言

2020-03-02 15:05:56

Java前端學(xué)習(xí)路線(xiàn)

2009-09-04 09:00:29

Java基礎(chǔ)語(yǔ)法
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)