第一篇:JAVA學(xué)習(xí)心得
我也搞了幾年JAVA了,由于一向懶惰,沒(méi)有成為大牛,只是一普通程序猿,不愛玩社交網(wǎng)站,不愛玩微博,唯獨(dú)喜歡百度貼吧,潛水很久了,手癢來(lái)給新人分享下從新手成長(zhǎng)為老鳥的已見,也刷刷存在感,應(yīng)該不比曝照差吧。
首先初識(shí)語(yǔ)法的階段,必須要學(xué)會(huì)怎么操作對(duì)象,操作if和for,操作list set map,然后是線程、IO和jdbc什么的,其余的,若是一時(shí)不理解,可以后邊需要時(shí)再學(xué)。
這階段完了,你可以寫些能在控制臺(tái)打印出來(lái)的小程序,鍛煉下邏輯思維。也就是號(hào)稱JAVASE畢業(yè)了,其實(shí)不過(guò)是入門而已,如果要往WEB方向發(fā)展,這些倒是基本足夠了。
接下來(lái)要學(xué)HTML JSP SERVLET 數(shù)據(jù)庫(kù) JAVASCRIPT TOMCAT,目標(biāo),寫出第一個(gè)動(dòng)態(tài)網(wǎng)站,也許只是個(gè)登陸功能,只能展示下個(gè)人資料,但這是很重要的一步,你要弄清楚的是,一個(gè)用戶的點(diǎn)擊產(chǎn)生的請(qǐng)求,是從哪里發(fā)起,哪里接收,哪里處理,哪里返回,你得理解瀏覽器和服務(wù)器的關(guān)系和分工,cookie和session,request和response。這個(gè)是個(gè)WEB開發(fā)的學(xué)習(xí)初級(jí)階段,這都是些JAVA誕生以來(lái)最原始的最官方的WEB開發(fā)技術(shù),當(dāng)然現(xiàn)在真正的項(xiàng)目很少直接采用這些技術(shù)了,為了不斷提高技術(shù)的易用性、開發(fā)效率和可維護(hù)性、可擴(kuò)展性,無(wú)數(shù)開源項(xiàng)目都是在這些原始技術(shù)的基礎(chǔ)上封裝、改進(jìn)。所以這個(gè)階段不要盲目樂(lè)觀地跑去找工作或者對(duì)實(shí)習(xí)挑三揀四,你會(huì)被打擊到的。
好,初始階段完成,開始進(jìn)入WEB開發(fā)的正題,首先是傳說(shuō)中的三大框架,struts hibernate spring成為熟練的增刪改查程序員是必須的,在這個(gè)階段你還要理解為什么要用這仨而不是那些JSP SERVLET JDBC,你要體會(huì)到寫MVC、三層架構(gòu)的好處。這個(gè)階段不要輕易質(zhì)疑三大框架的價(jià)值,也許剛開始你會(huì)覺得麻煩,覺得他們有時(shí)候是多此一舉,一兩年后回過(guò)頭來(lái)你會(huì)覺得少了這些框架你已經(jīng)很難干活了。這個(gè)階段還要避免的心態(tài)是能熟練地增刪改查了,就認(rèn)為寫程序不過(guò)如此,然后往簡(jiǎn)歷上填個(gè)精通,這也是新手面試被批得體無(wú)完膚的原因之一。如果你學(xué)得好,這會(huì)應(yīng)該能熟練地寫個(gè)博客啊,小論壇啊之類的WEB項(xiàng)目了,也就是達(dá)到了就業(yè)的基本要求。
接下來(lái)就沒(méi)有固定模式了,你的第一家企業(yè)對(duì)你的影響會(huì)很大,我見識(shí)過(guò)爛企業(yè)是如何毀新人的,用著設(shè)計(jì)惡劣的架構(gòu),老掉牙的技術(shù),不斷地耽誤新人的成長(zhǎng),有的員工在這種企業(yè)一呆數(shù)年,思維已經(jīng)完全被錯(cuò)誤觀點(diǎn)定型,深陷于公司業(yè)務(wù)和老系統(tǒng)中疲于奔命,看似能解決問(wèn)題,卻無(wú)法給公司帶來(lái)真正的進(jìn)步,就像一個(gè)用了數(shù)年砍刀的人,就算再熟練,刀法再好,也打不過(guò)用槍的。如果離開了這個(gè)公司,恐怕很難在這個(gè)行業(yè)再立足。記得有個(gè)說(shuō)法很好,一個(gè)人用10年的時(shí)間重復(fù)做頭一兩年做的事,你的真實(shí)工作經(jīng)驗(yàn)其實(shí)還是一兩年。爛公司的老員工就是如此。在這頭一年里,定個(gè)標(biāo)準(zhǔn)吧,你應(yīng)該能做到的有:
1、把一些常用的瑣碎技術(shù)學(xué)會(huì)了,比如xml的作用和實(shí)際運(yùn)用,如何操作文件,如何運(yùn)用日志,如何簡(jiǎn)化封裝常用的工具類,比如日期操作、編碼處理、分頁(yè)模塊等等,這些小東西會(huì)占用你大量的時(shí)間去處理摸索。
2、把數(shù)據(jù)庫(kù)用好。數(shù)據(jù)庫(kù)不是會(huì)增刪改查就可以了的,你要關(guān)注事務(wù)設(shè)置是否合理,是否有可能產(chǎn)生臟數(shù)據(jù),是否要?jiǎng)佑脴?lè)觀鎖悲觀鎖等等,重要數(shù)據(jù)出了錯(cuò),無(wú)論是技術(shù)上還是業(yè)務(wù)上都是很麻煩的事。
3、懂得什么是集群,什么是分布式,懂得怎么向別的系統(tǒng)發(fā)請(qǐng)求,交換數(shù)據(jù),webservice。
4、如果你也寫頁(yè)面,你要會(huì)用JAVASCRIPT,不一定要很深入,你可以用JQUERY代替,做到無(wú)刷新的頁(yè)面操作以及AJAX請(qǐng)求。
第一年能達(dá)到這個(gè)程度,你絕對(duì)已經(jīng)在平均水準(zhǔn)之上了。在我達(dá)到這個(gè)水平時(shí),我有種似乎一切網(wǎng)站開發(fā)都不在話下的感覺,當(dāng)然后來(lái)我很快就發(fā)現(xiàn)了我還差得太遠(yuǎn)太遠(yuǎn)....這個(gè)階段想面?zhèn)€高薪的工作還是很難的,只能說(shuō)達(dá)到溫飽線了,不用為柴米油鹽發(fā)愁。
下一個(gè)階段,你應(yīng)該考慮你的代碼質(zhì)量了。
1、多線程和異步、并發(fā)的概念會(huì)忽然變得很重要,因?yàn)樵谝粋€(gè)對(duì)性能有要求的系統(tǒng)里,是不會(huì)允許你把各種瑣事都排著隊(duì)一件件去辦的,你不能老寫些a方法調(diào)b方法再調(diào)c方法再調(diào)d方法然后返回的代碼。你開始想起有隊(duì)列這種東西,有runable這種東西,你開始覺得自己的代碼高端起來(lái)了,和當(dāng)年的增刪改查程序員有天壤之別。但同時(shí)麻煩也來(lái)了,你開始遇到線程安全問(wèn)題,尤其是當(dāng)你的程序跑在一個(gè)多機(jī)環(huán)境而不是單機(jī)環(huán)境里的時(shí)候,你會(huì)對(duì)這些很頭痛。對(duì)于這些問(wèn)題,Jms技術(shù)是個(gè)很有代表性的東西,當(dāng)然并不像ssh那么常用。
2、你會(huì)發(fā)現(xiàn)數(shù)據(jù)庫(kù)性能實(shí)在不行,出于不甘現(xiàn)狀,或者趕時(shí)髦,你該去了解nosql了,memcached redis mongodb,眼花繚亂,沒(méi)關(guān)系,試著用用,能很好地緩解mysql之類關(guān)系數(shù)據(jù)庫(kù)的壓力。
3、出于公司某些業(yè)務(wù)需要,你可能會(huì)鉆研一個(gè)特定技術(shù)領(lǐng)域,比如全文搜索技術(shù),lucenesolr,比如工作流jbpm,比如權(quán)限系統(tǒng),單點(diǎn)登陸之類的,又或者某些特定業(yè)務(wù)領(lǐng)域的算法研究,這些是你的加分項(xiàng)。
4、你開始發(fā)現(xiàn)你的代碼很亂,久了以后自己都看不懂,重復(fù)的,難以重用的代碼堆積如山,不想維護(hù),BUG百出。于是你要開始重視設(shè)計(jì)模式,合理地改造下自己的代碼習(xí)慣,不再被僵化的SSH,MVC三層架構(gòu)束縛住。
5、Google和各種資料是你進(jìn)步的動(dòng)力,極少再遇到必須請(qǐng)教別人才能解決的問(wèn)題,如果你這個(gè)階段還老是問(wèn)別人,你的技術(shù)生涯也就快到頭了。
這個(gè)階段,如果你的交際和自我推銷能力不是太差,你的收入將是白領(lǐng)水平,至少接近了。
我覺得多數(shù)程序員在工作多年之后都能達(dá)到這個(gè)水平,有的人只需要兩年,有的人卻要用上五六年,在這個(gè)階段落伍的人,有的是出于天賦和思維所限,有的是出于對(duì)技術(shù)缺乏熱情,有的是出于工作內(nèi)容的制約。等到年近中年,再也拼不過(guò)年輕人,被淘汰出局,只能在自嘲為屌絲和碼農(nóng)的無(wú)奈中黯然轉(zhuǎn)行。
這是個(gè)很重要的分水齡,你能不能繼續(xù)進(jìn)步,能不能在30歲以后繼續(xù)從事技術(shù)工作,能不能在公司里獨(dú)當(dāng)一面,我覺得就看你能不能超越這個(gè)階段了。我前面提到的爛公司里的工作數(shù)年的項(xiàng)目經(jīng)理,連這個(gè)層次都還沒(méi)達(dá)到...接下來(lái)又是個(gè)全新的階段。
1、你要讀讀優(yōu)秀開源項(xiàng)目的源碼,你要搞懂一些當(dāng)年不懂的基礎(chǔ)知識(shí),你開始理解thinking in java的精髓,你能寫一些底層的代碼,有時(shí)還會(huì)覺得自己封裝的比某些開源工具更好用更簡(jiǎn)單。
2、WEB的難點(diǎn)和重點(diǎn)永遠(yuǎn)都在于性能、負(fù)載能力上,而現(xiàn)在網(wǎng)絡(luò)的發(fā)達(dá)造成了數(shù)據(jù)量和操作密度的大大上升,硬件卻沒(méi)有相應(yīng)的進(jìn)步,你得試著更好地運(yùn)用更多的服務(wù)器來(lái)協(xié)同工作,從WEB端到服務(wù)端到數(shù)據(jù)庫(kù),全都需要集群,需要分布式,需要合理的控制數(shù)據(jù)的流向,掌握好網(wǎng)站上下,一大堆機(jī)器的平衡,找出性能的瓶頸,找出穩(wěn)定性和安全性的瓶頸,硬件出現(xiàn)故障,第三方技術(shù)出現(xiàn)錯(cuò)誤,將被當(dāng)成家常便飯融入到你的系統(tǒng)和代碼里仔細(xì)考慮。
3、開始覺得方案無(wú)比地重要,一將無(wú)能累死千軍將不斷應(yīng)驗(yàn),一個(gè)不好的設(shè)計(jì),一個(gè)不好的方案,會(huì)讓一群優(yōu)秀的程序員工作成果大打折扣。你要關(guān)注架構(gòu)知識(shí),不能再滿足于SSH三層架構(gòu)到底。領(lǐng)域驅(qū)動(dòng)設(shè)計(jì),面向事件開發(fā),敏捷開發(fā)等等一系列的思想在關(guān)鍵時(shí)刻能決定你項(xiàng)目的生死,這個(gè)階段不再有標(biāo)準(zhǔn)范例讓你照抄,你只知道思想和原理,實(shí)踐卻需要自己不斷嘗試和改進(jìn)。
4、多關(guān)注各種雜七雜八的開源技術(shù),有些你可能前面已經(jīng)接觸過(guò)了,和通信有關(guān)的,和集成開發(fā)環(huán)境有關(guān)的,和架構(gòu)有關(guān)的,各個(gè)領(lǐng)域你都應(yīng)該能信口說(shuō)上幾個(gè)主流技術(shù),雖然你可能只是聽說(shuō)過(guò),了解,但關(guān)鍵時(shí)刻你得知道如何去選擇技術(shù),并快速掌握它。你還會(huì)去考慮嘗試下別的語(yǔ)言,這里不是說(shuō)轉(zhuǎn)向什么C++ C#之類的,那和JAVA程序員不相干,我說(shuō)的是一些運(yùn)行于JVM之上的語(yǔ)言,比如scala和groovy,初識(shí)他們時(shí)你會(huì)覺得java真的老了。但當(dāng)你回到一個(gè)綜合性的大型項(xiàng)目中,又會(huì)覺得java積累下來(lái)的整個(gè)體系技術(shù)是如此完善,就像一個(gè)工業(yè)化標(biāo)準(zhǔn)一樣。
你能把這個(gè)階段實(shí)踐好,勝任項(xiàng)目經(jīng)理,乃至中小公司的技術(shù)總監(jiān)都是可以的。
不知不覺寫了這么多了,以上是我個(gè)人眼里的一般向JAVA EE發(fā)展線路,限于篇輻也不全面,實(shí)際個(gè)人成長(zhǎng)路線可能因?yàn)楣ぷ鲀?nèi)容的不同差異會(huì)很大,有的人偏向了底層研究,有的人偏向了業(yè)務(wù)需求設(shè)計(jì),有的帶有濃重的行業(yè)色彩,而且技術(shù)之外,還有很多知識(shí)也很重要.w做JAVA沒(méi)有輕松的方向,但一個(gè)對(duì)技術(shù)抱有興趣的人,走到這一步時(shí),仍然會(huì)對(duì)開發(fā)抱有熱情,想要寫出好的項(xiàng)目。純?yōu)榱松?jì)而工作的程序猿是走不到這一步的。
暫且收手,希望以上能讓J8的新人們了解將來(lái)要面對(duì)的大致狀況,同時(shí)也抱著打擊下小朋友們幼小心靈的邪惡心理就此按下發(fā)表按鈕。
能完整看完的同學(xué),在此表示欽佩,我想當(dāng)年的我也未必能看完這種又臭又長(zhǎng)的敘述...1、對(duì)象的初始化
(1)非靜態(tài)對(duì)象的初始化
在創(chuàng)建對(duì)象時(shí),對(duì)象所在類的所有數(shù)據(jù)成員會(huì)首先進(jìn)行初始化。
基本類型:int型,初始化為0。
如果為對(duì)象:這些對(duì)象會(huì)按順序初始化。
※在所有類成員初始化完成之后,才調(diào)用本類的構(gòu)造方法創(chuàng)建對(duì)象。
構(gòu)造方法的作用就是初始化。
(2)靜態(tài)對(duì)象的初始化
程序中主類的靜態(tài)變量會(huì)在main方法執(zhí)行前初始化。
不僅第一次創(chuàng)建對(duì)象時(shí),類中的所有靜態(tài)變量都初始化,并且第一次訪問(wèn)某類(注意此時(shí)
未創(chuàng)建此類對(duì)象)的靜態(tài)對(duì)象時(shí),所有的靜態(tài)變量也要按它們?cè)陬愔械捻樞虺跏蓟?/p>
2、繼承時(shí),對(duì)象的初始化過(guò)程
(1)主類的超類由高到低按順序初始化靜態(tài)成員,無(wú)論靜態(tài)成員是否為private。
(2)主類靜態(tài)成員的初始化。
(3)主類的超類由高到低進(jìn)行默認(rèn)構(gòu)造方法的調(diào)用。注意,在調(diào)用每一個(gè)超類的默認(rèn)構(gòu)造
方法前,先進(jìn)行對(duì)此超類進(jìn)行非靜態(tài)對(duì)象的初始化。(4)主類非靜態(tài)成員的初始化。
(5)調(diào)用主類的構(gòu)造方法。
3、關(guān)于構(gòu)造方法
(1)類可以沒(méi)有構(gòu)造方法,但如果有多個(gè)構(gòu)造方法,就應(yīng)該要有默認(rèn)的構(gòu)造方法,否則在繼承此類時(shí),需要在子類中顯式調(diào)用父類的某一個(gè)非默認(rèn)的構(gòu)造方法了。
(2)在一個(gè)構(gòu)造方法中,只能調(diào)用一次其他的構(gòu)造方法,并且調(diào)用構(gòu)造方法的語(yǔ)句必須是
第一條語(yǔ)句。
4、有關(guān)public、private和protected(1)無(wú)public修飾的類,可以被其他類訪問(wèn)的條件是:a.兩個(gè)類在同一文件中,b.兩個(gè)類
在同一文件夾中,c.兩個(gè)類在同一軟件包中。
(2)protected:繼承類和同一軟件包的類可訪問(wèn)。
(3)如果構(gòu)造方法為private,那么在其他類中不能創(chuàng)建該類的對(duì)象。
5、抽象類
(1)抽象類不能創(chuàng)建對(duì)象。
(2)如果一個(gè)類中一個(gè)方法為抽象方法,則這個(gè)類必須為abstract抽象類。
(3)繼承抽象類的類在類中必須實(shí)現(xiàn)抽象類中的抽象方法。
(4)抽象類中可以有抽象方法,也可有非抽象方法。抽象方法不能為private。
(5)間接繼承抽象類的類可以不給出抽象方法的定義。
6、final關(guān)鍵字
(1)一個(gè)對(duì)象是常量,不代表不能轉(zhuǎn)變對(duì)象的成員,仍可以其成員進(jìn)行操作。
(2)常量在使用前必須賦值,但除了在聲明的同時(shí)初始化外,就只能在構(gòu)造方法中初始化
。(3)final修飾的方法不能被重置(在子類中不能出現(xiàn)同名方法)。
(4)如果聲明一個(gè)類為final,則所有的方法均為final,無(wú)論其是否被final修飾,但數(shù)據(jù)
成員可為final也可不是。
7、接口interface(用implements來(lái)實(shí)現(xiàn)接口)
(1)接口中的所有數(shù)據(jù)均為 static和final即靜態(tài)常量。盡管可以不用這兩個(gè)關(guān)鍵字修飾,但必須給常量賦初值。
(2)接口中的方法均為public,在實(shí)現(xiàn)接口類中,實(shí)現(xiàn)方法必須可public關(guān)鍵字。
(3)如果使用public來(lái)修飾接口,則接口必須與文件名相同。
8、多重繼承
(1)一個(gè)類繼承了一個(gè)類和接口,那么必須將類寫在前面,接口寫在后面,接口之間用逗
號(hào)分隔。
(2)接口之間可多重繼承,注意使用關(guān)鍵字extends。
(3)一個(gè)類雖只實(shí)現(xiàn)了一個(gè)接口,但不僅要實(shí)現(xiàn)這個(gè)接口的所有方法,還要實(shí)現(xiàn)這個(gè)接口
繼承的接口的方法,接口中的所有方法均須在類中實(shí)現(xiàn)。
9、接口的嵌入
(1)接口嵌入類中,可以使用private修飾。此時(shí),接口只能在所在的類中實(shí)現(xiàn),其他類不
能訪問(wèn)。
(2)嵌入接口中的接口一定要為public。
10、類的嵌入
(1)類可以嵌入另一個(gè)類中,但不能嵌入接口中。
(2)在靜態(tài)方法或其他方法中,不能直接創(chuàng)建內(nèi)部類對(duì)象,需通過(guò)手段來(lái)取得。
手段有兩種: class A { class B {} B getB(){ B b = new B();return b;} } static void m(){ A a = new A();A.B ab = a.getB();// 或者是 A.B ab = a.new B();}(3)一個(gè)類繼承了另一個(gè)類的內(nèi)部類,因?yàn)槌愂莾?nèi)部類,而內(nèi)部類的構(gòu)造方法不能自動(dòng)
被調(diào)用,這樣就需要在子類的構(gòu)造方法中明確的調(diào)用超類的構(gòu)造方法。
接上例:
class C extends A.B { C(){ new A().super();// 這一句就實(shí)現(xiàn)了對(duì)內(nèi)部類構(gòu)造方法的調(diào)用。
} } 構(gòu)造方法也可這樣寫:
C(A a){ a.super();} // 使用這個(gè)構(gòu)造方法創(chuàng)建對(duì)象,要寫成C c = new C(a);a是A的對(duì)象。
11、異常類
JAVA中除了RunTimeException 類,其他異常均須捕獲或拋出。
第二篇:java學(xué)習(xí)心得
Java學(xué)習(xí)心得
專業(yè):信息與計(jì)算科學(xué)班級(jí):
姓名:學(xué)號(hào):
日期:
河北建筑工程學(xué)院數(shù)理系
java語(yǔ)言產(chǎn)生于C++語(yǔ)言之后,是完全的面向?qū)ο蟮木幊陶Z(yǔ)言,充分吸取了C++語(yǔ)言的優(yōu)點(diǎn),采用了程序員所熟悉的C和C++語(yǔ)言的許多語(yǔ)法,同時(shí)又去掉了C語(yǔ)言中指針、內(nèi)存申請(qǐng)和釋放等影響程序健壯性的部分,可以說(shuō)java語(yǔ)言是站在C++語(yǔ)言這個(gè)“巨人的肩膀上”前進(jìn)的。
java采用的是相對(duì)簡(jiǎn)單的面向?qū)ο蠹夹g(shù),去掉了運(yùn)算符重載、多繼承的復(fù)雜概念,而采用了單一繼承、類強(qiáng)制轉(zhuǎn)換、多線程、引用(非指針)等方式。
在java程序中不能采用地址計(jì)算的方法通過(guò)指針訪問(wèn)內(nèi)存單元,大大減少了錯(cuò)誤發(fā)生的可能性;而且java的數(shù)組并非用指針實(shí)現(xiàn),這樣就可以在檢查中避免數(shù)組越界的發(fā)生。
Java語(yǔ)言學(xué)習(xí)要點(diǎn)
一、掌握靜態(tài)方法和屬性
靜態(tài)方法和屬性用于描述某一類對(duì)象群體的特征,而不是單個(gè)對(duì)象的特征。Java中大量應(yīng)用了靜態(tài)方法和屬性,這是一個(gè)通常的技巧。但是這種技巧在很多語(yǔ)言中不被頻繁地使用。理解靜態(tài)方法和屬性對(duì)于理解類與對(duì)象的關(guān)系是十分有幫助的,在大量的Java規(guī)范中,靜態(tài)方法和屬性被頻繁使用。因此學(xué)習(xí)者應(yīng)該理解靜態(tài)方法和屬性。Java在方法和屬性的調(diào)用上是一致的,區(qū)別只表現(xiàn)在聲明的時(shí)候,這和c++是不同的。
二、重視接口
在面向?qū)ο笤缙诘膽?yīng)用中大量使用了類繼承。隨著軟件工程理論的不斷發(fā)展,人們開始意識(shí)到了繼承的眾多缺點(diǎn),開始努力用聚合代替繼承。軟件工程解決擴(kuò)展性的重要原則就是抽象描述,直接使用的工具就是接口。接口近年來(lái)逐漸成為Java編程方法的核心。另一方面,就應(yīng)用而言,大部分開發(fā)是建立在規(guī)范基礎(chǔ)之上的,不需要自己建立復(fù)雜的繼承關(guān)系和龐大的類。因此讀懂規(guī)范和用好規(guī)范已經(jīng)成為應(yīng)用程序開發(fā)人員的首要任務(wù),Java各項(xiàng)規(guī)范的主要描述手段就是接口。
三、學(xué)好集合框架
Java描述復(fù)雜數(shù)據(jù)結(jié)構(gòu)的主要方式是集合框架。Java沒(méi)有指針,而是通過(guò)強(qiáng)大的集合框架描述數(shù)組、對(duì)象數(shù)組等復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。學(xué)好這些數(shù)據(jù)結(jié)構(gòu)的描述方法對(duì)于應(yīng)用程序編寫,特別是涉及到服務(wù)器方、3層結(jié)構(gòu)編程至關(guān)重要。程序員在這個(gè)時(shí)候不能再用諸如數(shù)據(jù)庫(kù)結(jié)果集之類的結(jié)構(gòu)描述數(shù)據(jù)了。
四、例外捕捉
Java對(duì)例外捕捉的強(qiáng)調(diào)是空前的,它強(qiáng)迫程序員用顯著的與邏輯方法完全不同的方式描述例外捕捉,對(duì)于程序描述的完整性和嚴(yán)謹(jǐn)性有很大的意義。
總之學(xué)編程語(yǔ)言不僅僅是從理論上的學(xué)習(xí),更重要的是要利用這門語(yǔ)言為你的思想服務(wù)。理解這門語(yǔ)言是首要的,但是要達(dá)到心領(lǐng)神會(huì)、融會(huì)貫通就必須勤動(dòng)手,多去時(shí)間,多編一些例子。計(jì)算機(jī)科學(xué)是注重實(shí)踐的學(xué)科,成功的軟件開發(fā)人員無(wú)不經(jīng)過(guò)大量的上機(jī)鍛煉,只有理論和實(shí)踐相結(jié)合才能真正掌握只是和技能。
第三篇:Java學(xué)習(xí)心得
Java學(xué)習(xí)心得
一、如何學(xué)好java??
1.就本人認(rèn)為學(xué)好java關(guān)鍵就在于態(tài)度。態(tài)度是學(xué)習(xí)好java的前
提,積極的態(tài)度注定你就比別人學(xué)得認(rèn)真,自然最終學(xué)的一定
比不認(rèn)真的人學(xué)的好!
2.有良好的前提,不努力也不行的,所以呀!還得練習(xí)。要做到
常練習(xí),多看,多思考(舉一反三,多方位的,全面的使你的程序更加的完美);
3.最后一點(diǎn),就是多多交流!閉門造車永遠(yuǎn)是落后的學(xué)習(xí)方式,所以好要和身邊的一切可以交流技術(shù)的人積極交流,畢竟個(gè)人的力量有限的!
二、Java中那些重要知識(shí)點(diǎn)?。ū救苏J(rèn)為最主要的是思想,知識(shí)點(diǎn)也很重要,關(guān)鍵是在學(xué)習(xí)中總結(jié)出自己的一套思想,好的槍手都是子彈喂出來(lái)的,好的程序員都是寫代
碼寫出來(lái)的)
1. Java數(shù)據(jù)類型
a)基本數(shù)據(jù)類型:byte、short、int、long、float、double、char、boolean(注意各自的取值范圍,還有轉(zhuǎn)換方式)
b)引用數(shù)據(jù)類型: 數(shù)組、類、接口。
2. 運(yùn)算符號(hào)
a)算術(shù)運(yùn)算符:+、-、*、/、%、++、--;
b)賦值運(yùn)算符:=、+=、-=、*=、/=、%=;
c)比較運(yùn)算符:<、>、=<、=>、!=;(返回值都是false/true)d)邏輯運(yùn)算符:&&、||、!
e)位運(yùn)算符:用于操作二進(jìn)制位的運(yùn)算符:<<、>>、>>>……
4.基本數(shù)據(jù)結(jié)構(gòu):
a)順序結(jié)構(gòu)
b)選擇結(jié)構(gòu)(if……else……,switch……case……
default……);
c)循環(huán)結(jié)構(gòu)(for()、do……while、while)(分清break與
continue的用法)
5.數(shù)組(用于存儲(chǔ)同一類型數(shù)據(jù)的一個(gè)容器)
a)表現(xiàn)形式:
i.ii.元素類型[] 變量名 = new 元素類型[元素的個(gè)數(shù)]; 元素類型[] 變量名 = {元素1,元素2...};(new 元素類
型[]{元素1,元素2...};)
b)數(shù)組排序方法:插入排序,二分法排序,希爾排序,還有
最主要的——冒泡排序
6.內(nèi)存(1:寄存器2:本地方法區(qū)3:方法區(qū)4:棧5:堆)
a)棧(存儲(chǔ)的都是局部變量)只要數(shù)據(jù)運(yùn)算完成所在的區(qū)域
結(jié)束,該數(shù)據(jù)就會(huì)被釋放。
b)堆(用于存儲(chǔ)數(shù)組和對(duì)象,也就是實(shí)體——用于封裝多個(gè)
數(shù)據(jù)的)
i.每一個(gè)實(shí)體都有內(nèi)存首地址值。
ii.堆內(nèi)存中的變量都有默認(rèn)初始化值。因?yàn)閿?shù)據(jù)類型不
同,值也不一樣。
iii.垃圾回收機(jī)制
7.面向?qū)ο?/p>
a)特點(diǎn):
i.ii.iii.將復(fù)雜的事情簡(jiǎn)單化。面向?qū)ο髮⒁郧暗倪^(guò)程中的執(zhí)行者,變成了指揮者。面向?qū)ο筮@種思想是符合現(xiàn)在人們思考習(xí)慣的一種思
想。
b)對(duì)事物進(jìn)行屬性和行為的分析
i.ii.屬性:特點(diǎn) 行為:函數(shù)(方法)
8.訪問(wèn)權(quán)限
a)Private(私有的訪問(wèn)權(quán)限最低,只有在本類中的訪問(wèn)有效)
(Set方法設(shè)置,get方法提?。?/p>
b)Protected(安全的)受保護(hù)權(quán)限,體現(xiàn)在繼承,即子類可
以訪問(wèn)父類受保護(hù)成員,同時(shí)相同包內(nèi)的其他類也可以訪問(wèn)protected成員。
c)無(wú)修飾詞(默認(rèn)),表示包訪問(wèn)權(quán)限(friendly,java語(yǔ)言
中是沒(méi)有friendly這個(gè)修飾符的,這樣稱呼應(yīng)該是來(lái)源于
c++),同一個(gè)包內(nèi)可以訪問(wèn),訪問(wèn)權(quán)限是包級(jí)訪問(wèn)權(quán)限
d)public修飾詞,表示成員是公開的,所有其他類都可以訪
問(wèn)
9.方法重載與方法重寫
a)方法重載(一個(gè)類中可以有多個(gè)具有相同名字的方法,但
這些方法的參數(shù)不同(類型、個(gè)數(shù)、順序不同))
b)方法重寫(子類定義一個(gè)方法,并且這個(gè)方法的名字、返
回類型、參數(shù)的個(gè)數(shù)、參數(shù)類型與父類繼承的方法完全相同)
10.java面向?qū)ο笕筇匦裕ɡ^承,封裝,多態(tài))
a)封裝(private):主要是Set方法與get方法合作應(yīng)用
b)繼承(extends):注意訪問(wèn)權(quán)限,看看是否能繼承!
c)多態(tài):父類引用或者接口的引用指向了自己的子類對(duì)象,eg(動(dòng)物——1.食草動(dòng)物2.食肉動(dòng)物——老虎,獅子,狗);
11.抽象類與接口
a)抽象類(abstract)特點(diǎn):1.不能new2.可以由抽象方法(但
是非抽象類不能有抽象方法)
b)接口(interface聲明)
i.接口使用(implements):一個(gè)類可以實(shí)現(xiàn)一個(gè)或多個(gè)
接口,用逗號(hào)隔開。
ii.接口強(qiáng)調(diào)的是功能:has——a的問(wèn)題!
12.多線程(Thread類與Runable接口)
a)主要方法:
i.start()啟動(dòng)線程
ii.iii.iv.run()程序運(yùn)行的方法,功能實(shí)現(xiàn)區(qū)域 sleep()休眠,使程序處于休眠狀態(tài) interrupt()吵醒:吵醒處于休眠狀態(tài)的程序,使進(jìn)入正
常狀態(tài);
b)線程同步(synchronized鎖)關(guān)鍵在于this與object的區(qū)別,各自使用的范圍與壞境。
13.流(input/output)
a)分類:主要是字節(jié)流與字符流,還有緩沖流,數(shù)據(jù)流,對(duì)
象流……
b)方法都差不多:主要是writer()與read()還有各自對(duì)應(yīng)的數(shù)
組應(yīng)用!
c)出現(xiàn)亂碼時(shí)注意你用的流是否合適以及你使用的編碼格式
以否可以支持
14.套接字(Socket)
a)主要功能就是通信(安全的)(利用port進(jìn)行連接)
b)利用流連接進(jìn)行通信,數(shù)據(jù)傳送
15.……還有好多,自己慢慢研究吧!java博大精深!
三、我們?cè)趯W(xué)習(xí)中的那些難題?
1.總是遇到難以理解的東西?
2.總是以為自己回了,但是又寫不出來(lái)?
3.總是覺得問(wèn)題很難,但是經(jīng)過(guò)別人的指點(diǎn)就會(huì)覺得好簡(jiǎn)
單?
第四篇:java學(xué)習(xí)心得(模版)
湖南軟件職業(yè)學(xué)院
HNSERJ20080101
.湖南軟件職業(yè)學(xué)院
畢 業(yè) 論 文
知識(shí)改變命運(yùn)
課 題:java學(xué)習(xí)心得 院 系:軟件工程系 專 業(yè):軟件技術(shù) 班 級(jí):軟件0615班 姓 名:周專書 指導(dǎo)老師:鄭利嬌 完成時(shí)間:2009-5-12
004km.cn 軟件成就未來(lái) 湖南軟件職業(yè)學(xué)院
HNSERJ20080101
Java實(shí)習(xí)報(bào)告
一.引言
面臨畢業(yè)與就業(yè)的壓力,不久將來(lái)就要從一個(gè)學(xué)生到一個(gè)社會(huì)人的轉(zhuǎn)變:技術(shù)在不斷的提高,思路在不斷的開闊,思想在不斷的升華,更重要的是自己的理想和抱負(fù)更加的堅(jiān)定。對(duì)于一個(gè)投身于IT的新人,經(jīng)驗(yàn)談不上,一些學(xué)習(xí)的心得倒是可以拿出來(lái)探討一下,我們?cè)撊绾蚊媾R這個(gè)似曾相識(shí)的社會(huì),突然一天如此接近。面對(duì)“金融風(fēng)暴”帶來(lái)的就業(yè)壓力,我們正在逐漸走向成熟,我們意志更加堅(jiān)強(qiáng),我們深知不經(jīng)一番寒徹骨,哪來(lái)梅花撲鼻香。深深地體會(huì)到找一份好工作多么不容易的,尤其是能力匱乏的我們。一切都要付出行動(dòng),不能空想,要實(shí)現(xiàn)目標(biāo),就得不懈的努力。
的確,軟件仍然是一個(gè)朝陽(yáng)行業(yè),對(duì)于人才的需求量也很大,這也是為什么很多人努力走上這座獨(dú)木橋的原因。但是當(dāng)你面臨人生的一個(gè)選擇時(shí),當(dāng)你決定要踏上軟件開發(fā)之路時(shí),你應(yīng)該問(wèn)一下自己:我為什么要選擇它?其實(shí)很多人在這條道路上摸爬滾打了多年也沒(méi)弄清楚這個(gè)問(wèn)題的答案。如果你想在這條道路上有所成就的 話,一是興趣使然,二是做好自己的職業(yè)規(guī)劃。軟件開發(fā)其實(shí)是一條非常艱苦的路,不停的學(xué)習(xí),不斷的熬夜,沒(méi)有鮮花更沒(méi)有掌聲,陪伴你的是那漫長(zhǎng)而孤獨(dú)的夜。想一想我們準(zhǔn)備好迎接這一切了嗎?如果沒(méi)有興趣我勸你還是放棄這條路,沒(méi)有興趣你就在這條路上走不長(zhǎng),等待你的只有轉(zhuǎn)行。如果你真的把它作為你職業(yè)生涯的跳板,那么請(qǐng)你做好自己的人生規(guī)劃,有步驟的實(shí)現(xiàn)它。話題稍微遠(yuǎn)了一點(diǎn),現(xiàn)在我就談?wù)勛约涸贘ava學(xué)習(xí)方面的心得和教訓(xùn)。
古人云:活到老,學(xué)到老。讀書學(xué)習(xí)實(shí)乃艱苦之事,花費(fèi)時(shí)間,消耗精力。然苦之外亦見其樂(lè):得到了知識(shí),提高了認(rèn)識(shí),完善了自己。學(xué)習(xí),求其真,務(wù)其實(shí),應(yīng)“敏而好學(xué),不恥下問(wèn)”,才能不斷促使進(jìn)步。學(xué)習(xí),不僅求知,也要懂法,學(xué)會(huì)方法比掌握知識(shí)更加重要。笛卡爾說(shuō)過(guò),“沒(méi)有正確的方法,即使有知識(shí)改變命運(yùn) 004km.cn 軟件成就未來(lái) 湖南軟件職業(yè)學(xué)院
HNSERJ20080101
眼睛的博學(xué)者也會(huì)像瞎子一樣盲目摸索”,可見學(xué)習(xí)方法的重要性。
其實(shí),大學(xué)之前幾乎沒(méi)有軟件技術(shù)之類的概念,大三之前仍然對(duì)于程序懵懂不開。但是這并不能妨礙我熱愛這個(gè)行業(yè),也不能就斷定我在這個(gè)行業(yè)里一事無(wú)成。剛學(xué) Java,我的確感覺不開竅,特別對(duì)OO(面向?qū)ο螅┚幊倘匀徊荒芾斫?。但是人如果一思考,其?shí)什么問(wèn)題都解決了。對(duì)于學(xué)習(xí)java基礎(chǔ)的經(jīng)驗(yàn)就是多做、多思考,基礎(chǔ)知識(shí)的學(xué)習(xí)不能不求甚解,要追本溯源,弄清問(wèn)題的本質(zhì)。這樣才能舉一反三,由點(diǎn)及面。對(duì)于抽象的東西要能具體化,對(duì)于具體的東西要能抽象化。我學(xué)習(xí)java基礎(chǔ)一直使用的是《編程思想》第四版這本書,感覺挺不錯(cuò)的,全面透徹通俗易懂,在國(guó)外也是廣受好評(píng),我很惋惜沒(méi)有早點(diǎn)知道這本書,否則也不回浪費(fèi)大學(xué)三年青春歲月,一無(wú)是處的打發(fā)光陰,值得慶幸的事這本書一定程度上激發(fā)了我對(duì)java學(xué)習(xí)的興趣與潛力。英語(yǔ)能力強(qiáng)的話,可以直接看英文原版。我一直強(qiáng)調(diào)重視基礎(chǔ),如果你的java基礎(chǔ)打的牢,你在學(xué)習(xí)那些java框架就是非常輕松的事了。
二.Java學(xué)習(xí)心得之我見
學(xué)習(xí)java,的確要學(xué)習(xí)的東西很多,就像這為朋友上面提到的那些。Java不像.net一家獨(dú)大,記得在大學(xué)里教我們.net老師早就提醒過(guò)我們學(xué)java才是出路,學(xué)好java才是王道,我當(dāng)時(shí)就納悶,這不是搬石頭砸自己的腳,往自己身上潑冷水嗎?現(xiàn)在恍然大悟,他當(dāng)時(shí)只是為我們指引一條明路,Java的繁盛在于開源社區(qū)的龐大,這也帶來(lái)了分支太多的問(wèn)題,怎樣選擇一條好的學(xué)習(xí)路線,對(duì)于初學(xué)者來(lái)說(shuō),的確是一件很迷茫的事。其實(shí)不管java東西再多,總有規(guī)律可循。根據(jù)自己的發(fā)展方向的不同,可以選擇不同的學(xué)習(xí)路線。對(duì)于怎樣成為一名出色的Java Web程序員,我的建議是:
1、JSP的知識(shí)不能欠缺,理解什么是servlet,什么是java bean,熟悉jsp常使用的標(biāo)簽。我自己感覺,對(duì)于JSP的學(xué)習(xí)不需要太認(rèn)真,畢竟現(xiàn)在真正使用純JSP的情況已經(jīng)不多了,能掌握基本的知識(shí)就綽綽有余。
2、學(xué)習(xí)一個(gè)或一個(gè)以上的web表現(xiàn)框架。如果從使用的程度上來(lái)講,Struts依然是最流行的框架,社會(huì)需求也很大,所以學(xué)習(xí)Struts是一個(gè)不錯(cuò)的選擇,最近一個(gè)月我們剛剛模擬Struts開發(fā)了一個(gè)簡(jiǎn)單的網(wǎng)上商城,雖然算不上一大正規(guī)知識(shí)改變命運(yùn) 004km.cn 軟件成就未來(lái) 湖南軟件職業(yè)學(xué)院
HNSERJ20080101 的項(xiàng)目,總算也用到了框架,因?yàn)榭蚣鼙旧硪彩且环N封裝,程序開發(fā)是將簡(jiǎn)單事情復(fù)雜化,模擬Struts使我們學(xué)習(xí)三大框架和其他框架奠定良好的基礎(chǔ),使用框架的前提是你對(duì)他處理的業(yè)務(wù)邏輯也相當(dāng)熟練了。當(dāng)然也可以學(xué)習(xí)其他的框架,JSF作為一個(gè)標(biāo)準(zhǔn),雖然現(xiàn)在使用的人不多,但是為了明天的主流,學(xué)習(xí)JSF也非常不錯(cuò)。我就是開始學(xué)習(xí)Struts,后來(lái)公司用JSF,自己又自學(xué)了JSF,其實(shí)領(lǐng)悟了程序設(shè)計(jì)的思想,學(xué)什么都很容易。
3、簡(jiǎn)單說(shuō)說(shuō)Spring,EJB。鑒于培訓(xùn)中心的課程安排,我們需要學(xué)習(xí)spring,spring作為業(yè)務(wù)邏輯層的輕量級(jí)架構(gòu)框架spring,依然占據(jù)著主流的位置,雖然EJB3的發(fā)布對(duì)它沖擊很大,但是在比較長(zhǎng)的時(shí) 間里,它的位置還不能撼動(dòng)。學(xué)習(xí)spring會(huì)很快帶來(lái)實(shí)際效益。當(dāng)然EJB3的發(fā)布開始漸漸挽回以前丟棄的市場(chǎng),作為官方的標(biāo)準(zhǔn),它的未來(lái)充滿光明,學(xué)習(xí)EJB3會(huì)非常的有前途。自己最近也在學(xué)習(xí)EJB3其實(shí)對(duì)于剛剛畢業(yè)的學(xué)生沒(méi)必要深入研究他們,很多公司也不使用這樣業(yè)務(wù)邏輯層的框架,尤其是中小型企業(yè)。
4、至于xml,css這樣的頁(yè)面表現(xiàn)的東西,如果你不從事美工方面,我認(rèn)為沒(méi)有必要花過(guò)多的時(shí)間去學(xué)習(xí),在平時(shí)的項(xiàng)目開發(fā)中慢慢的就會(huì)使用了。
還是那句話,基礎(chǔ)很重要,永遠(yuǎn)不要忽視這一點(diǎn)。剛剛畢業(yè),公司不會(huì)要求員工什么都會(huì),只要技術(shù)扎實(shí),學(xué)習(xí)的能力強(qiáng),學(xué)習(xí)的速度就很快,企業(yè)有時(shí)候非常看重 這一點(diǎn)。其次掌握struts、hibernate這兩個(gè)框架,達(dá)到可以熟練使用的目的,這會(huì)增加你就業(yè)的砝碼。至于spring,EJB可以在以后的工作中學(xué)習(xí)使用,現(xiàn)在了解一下就可以了。當(dāng)然作為一個(gè)java web程序員,還要了解數(shù)據(jù)庫(kù)、tomcat,jboss服務(wù)器、常用的開發(fā)工具Eclipse,NetsBean等。
三,Java學(xué)習(xí)態(tài)度之我見 1.學(xué)java切忌浮躁
欲速則不達(dá),初學(xué)者請(qǐng)不要被新技術(shù)迷惑,先把基礎(chǔ)學(xué)扎實(shí),一步一個(gè)腳印的逐步學(xué)習(xí),不要想著一步登天。我們要如水底磐石切不可做那水上浮萍,浮躁的人永遠(yuǎn)學(xué)不到什么東西。軟件開發(fā)之路是充滿荊棘與挑戰(zhàn)之路,也是充滿希望知識(shí)改變命運(yùn) 004km.cn 軟件成就未來(lái) 湖南軟件職業(yè)學(xué)院
HNSERJ20080101
之路,沒(méi)有捷徑可走。夢(mèng)想像《天龍八部》中虛竹一樣被無(wú)崖子醍醐灌頂而輕松獲得一甲子功力,是很不現(xiàn)實(shí)的。每天仰天大叫“天神啊,請(qǐng)賜給我一本葵花寶典吧”,殊不知即使你獲得了葵花寶典,除了受自宮其身之苦外,你也不一定成得了“東方不敗”,倒是成“西方失敗”的幾率高一點(diǎn)?!安蛔邚澛罚褪墙輳健?,佛經(jīng)說(shuō)的不無(wú)道理。
2.要有自我約束力
春來(lái)不是讀書天,夏日炎炎正好眠,秋來(lái)蚊蟲冬又冷,背起書包待明年??傆幸恍├碛刹粚W(xué)習(xí)。這樣下去,我們的java之樹永遠(yuǎn)長(zhǎng)不大。古人云:“人靜而后安,安而能后定,定而能后慧,慧而能后悟,悟而能后得?!焙苡械览怼T谒拇ù笞惴鸾淌趟囆g(shù)中,有一組大型佛雕《牧牛圖》,描繪了一個(gè)牧童和牛由斗爭(zhēng)、對(duì)抗到逐漸融合、協(xié)調(diào),最后合而為一的故事。佛祖說(shuō):“人的心魔難伏,就像牛一樣,私心雜念太多太多;修行者就要像牧童,修煉他們,馴服他們,以完美自己的人生?!蔽覀儗W(xué)java也一樣,要能夠馴服那些影響我們學(xué)習(xí)的大牛、小牛,抵制各種誘惑,集中精力,專心學(xué)習(xí)。
3.課前稍作預(yù)習(xí)
我個(gè)人的經(jīng)驗(yàn)和理解,課前的預(yù)習(xí)對(duì)于我們學(xué)習(xí)java尤為重要。我們課前的預(yù)習(xí)相當(dāng)于第一遍的學(xué)習(xí),而這是為第二天的學(xué)習(xí)做了一個(gè)初步的了解,而且這樣學(xué)習(xí)更有效,更容易吸收課堂所學(xué),這樣既培養(yǎng)了我們的自學(xué)能力,也讓我們發(fā)現(xiàn)了這個(gè)章節(jié)的難點(diǎn)和不懂點(diǎn),上課時(shí)。在這里培訓(xùn)每天的理論知識(shí)量并不少,要是不預(yù)習(xí)我們會(huì)跟不上老師的教學(xué)節(jié)奏,不知其所云!
4.“三敲代碼”學(xué)習(xí)法
這個(gè)詞最初來(lái)自我們項(xiàng)目團(tuán)隊(duì)一個(gè)同學(xué)滑稽的演講,班上流傳的“笑柄”,但他是正確的,這是程序員都值得推薦學(xué)習(xí)的方法,為什么說(shuō)是“三敲代碼”呢?敲代碼也并不是一味的盲敲代碼。課前預(yù)習(xí)就是將課本上的實(shí)例代碼敲一遍,先知識(shí)改變命運(yùn) 004km.cn 軟件成就未來(lái) 湖南軟件職業(yè)學(xué)院
HNSERJ20080101
不管是否理解這些代碼的意思,有時(shí)候結(jié)果是很重要的,能讓你豁然開朗。第二遍敲代碼是課后的敲代碼,老師布置的或書上的作業(yè),雖然課后我們還是沒(méi)能吸收消化當(dāng)天知識(shí),我們可以借鑒別人的代碼,但一定得有自己的思路,否則只會(huì)事倍功半,適得其反。第三遍就是敲真正屬于自己的代碼。這是完全依靠自己所學(xué),自主的思維,來(lái)鞏固自己當(dāng)日所學(xué)進(jìn)行查漏補(bǔ)缺,那么才能保證學(xué)習(xí)效果。
5.理解+總結(jié)=記憶
認(rèn)真理解和善于總結(jié)是學(xué)好java的訣竅之一。學(xué)習(xí),就必須講求記憶,記憶知識(shí),就必須講求方法。得道者事半功倍,失道者事倍功半。Java有很多知識(shí)點(diǎn)是需要記憶的,有的人常常感嘆自己的記憶力不好,羨慕那些博聞強(qiáng)記的人。殊不知那些人無(wú)不是善于總結(jié)和整理自己的感官印象,才記得牢固而準(zhǔn)確,這便是理解。列夫?托爾斯泰說(shuō):“知識(shí),只有當(dāng)它靠積極的思維得來(lái)而不是憑記憶得來(lái)的時(shí)候,才是真正的知識(shí)?!笨鬃釉疲骸皩W(xué)而不思則罔,思而不學(xué)則殆?!边@些都充分證明了這一點(diǎn)。知識(shí)不能只停留在書本上,必須轉(zhuǎn)化為自己機(jī)能的一部分,達(dá)到“唯吾是從”。理解,必許透過(guò)現(xiàn)象認(rèn)本質(zhì),由此及彼、由表及里,去粗取精、去偽存真。善于開動(dòng)腦筋是其中的關(guān)鍵。
6.要善于積累
積累非常重要。莊子云:“水之積也不厚,則其負(fù)大舟也無(wú)力。風(fēng)之積也不厚,則其負(fù)大翼也無(wú)力?!蔽覀冋n堂上老師都會(huì)講很多的實(shí)例,這些實(shí)例都是每個(gè)知識(shí)點(diǎn)的真實(shí)體現(xiàn),我們都要即時(shí)的消化和理解。這樣日積月累,學(xué)習(xí)效率不斷提高,技術(shù)也逐步上升。有的同學(xué)認(rèn)為,課堂上聽不懂關(guān)系不大,課后自己看書也能認(rèn)識(shí),或者把一些問(wèn)題全部留在自習(xí)課上向老師請(qǐng)教,??這些想法都是錯(cuò)誤的,這樣想勢(shì)必上課不求甚解,積極思考不足,既浪費(fèi)了課堂時(shí)間和老師的課下時(shí)間,也變相加重自己課下的學(xué)業(yè)負(fù)擔(dān)。正確的態(tài)度是:上課專心聽講,積極思考,力求當(dāng)堂消化。針對(duì)課堂思路卡殼問(wèn)題,我個(gè)人理解是:千萬(wàn)不要在課堂上尋找卡殼的原因,要求自己跳過(guò)去,聽下面的內(nèi)容,課下再請(qǐng)教老師,共同分析導(dǎo)致自己卡殼的原因,不失為一種較好的辦法。
知識(shí)改變命運(yùn) 004km.cn 軟件成就未來(lái) 湖南軟件職業(yè)學(xué)院
HNSERJ20080101
在java培訓(xùn)中心也不定期開展職業(yè)素養(yǎng)的課程,盡管我覺得老師并不是那么專業(yè),我們也抱著無(wú)所謂的態(tài)度,但是我們依然意識(shí)這就是問(wèn)題的根源,通過(guò)開展職業(yè)素養(yǎng),讓我更深層次的認(rèn)識(shí)企業(yè)文化的重要性,這也是培訓(xùn)中心特別的地方。人無(wú)志,不成事。提高自己的職業(yè)素養(yǎng),對(duì)自身的發(fā)展會(huì)有很大的幫助。
四.職業(yè)素養(yǎng)的培訓(xùn)
1,保持積極向上樂(lè)觀的心態(tài)。
積極很重要的一方面就是樂(lè)觀自信。而要達(dá)到自己對(duì)自己充分的肯定,概括來(lái)說(shuō)可以從四個(gè)方面來(lái)講:第一,學(xué)會(huì)從另外一方面來(lái)看待事情,心態(tài)決定一切。第二,萬(wàn)事在失敗前拒絕說(shuō)“不行”。第三,不段給自己“充電”?!坝胁挪慌氯f(wàn)事難”我們要時(shí)常提高自己的內(nèi)涵和修養(yǎng)。第四,借鑒別人的事跡,失敗也是一種收獲。有了職業(yè),我們還必須得有積極和強(qiáng)烈的進(jìn)取心,這樣才能做出自己的成績(jī)。如果沒(méi)有進(jìn)取心,固步自封,工作上不想精益求精,事業(yè)就沒(méi)有發(fā)展的希望。我們?cè)陂_始工作時(shí),應(yīng)把積累工作經(jīng)驗(yàn)、提高工作能力作為目標(biāo),這是今后擴(kuò)大自己事業(yè)空間的基礎(chǔ)。不要計(jì)較薪金薄厚,更不能自命不凡,不屑小就。而要愛自己的職業(yè),深思研究工作改進(jìn)之術(shù),常保進(jìn)取的決心。古人說(shuō):“少壯不努力,老大徒傷悲?!边M(jìn)取心不但是成業(yè)的要素,并且是成己的要素。
2,注重項(xiàng)目團(tuán)隊(duì)合作。
保證一個(gè)團(tuán)體生機(jī)和活力,必須使得每一個(gè)成員能夠相互支持和包容,成員間充分尊重對(duì)方意見,現(xiàn)在終于感受到了團(tuán)隊(duì)合作重要性,項(xiàng)目小組花了一個(gè)星期做系統(tǒng),除了個(gè)人知識(shí)的融會(huì)貫通,更重要的是成員的溝通與協(xié)調(diào)。有人說(shuō),一個(gè)融洽的工作環(huán)境就是成功的一半。尤其是從事軟件開發(fā),團(tuán)隊(duì)就是發(fā)展的根源,更是一個(gè)好的系統(tǒng)的前提保證,一個(gè)人的思想是有限的,多遠(yuǎn)思維交織在一起,產(chǎn)生的力量是不可估量的。
知識(shí)改變命運(yùn) 004km.cn 軟件成就未來(lái) 湖南軟件職業(yè)學(xué)院
HNSERJ20080101
3,腳踏實(shí)地的做事。
樹立“職業(yè)神圣”觀念。一個(gè)人對(duì)自己職業(yè)不敬,便是對(duì)這一職業(yè)的褻瀆,其結(jié)果是會(huì)把事情做壞,給社會(huì)和個(gè)人帶來(lái)雙重?fù)p失。莊子說(shuō):“用志不分,乃凝于神?!蓖ㄋ椎卣f(shuō),敬業(yè)就是把自己從事的職業(yè)加以研究,勤勉從事的意思。做事為學(xué),有慎心,不怕勞,不虎頭蛇尾,不見異思遷。面對(duì)企業(yè)和人才之間的雙向選擇,一個(gè)敬業(yè)的員工無(wú)論走到哪里都將受到關(guān)注和重用,相反一個(gè)見異思遷的人在任何一個(gè)企業(yè)也不會(huì)有更光明的前途的,這是一個(gè)成為一個(gè)職業(yè)人的第一要素。我們不能“做一天和尚撞一天鐘”而是應(yīng)該“做一天和尚撞好一天鐘”。
4,兢兢業(yè)業(yè)的工作態(tài)度。
“干一行,愛一行”——只有樂(lè)業(yè),人才能從職業(yè)工作中得到精神享受。孔子說(shuō):“知之者不如好知者,好知者不如樂(lè)知者?!比松軓淖约郝殬I(yè)中領(lǐng)略出趣味,生活才有價(jià)值和意義。對(duì)于職業(yè)的態(tài)度不同,有的是以熱情擁抱的態(tài)度迎接職業(yè),有的是以冷酷無(wú)聊的態(tài)度迎接職業(yè)。其結(jié)果是,前者把職業(yè)當(dāng)成是親愛的永久伴侶,從中獲益;后者則只是得到煩惱,甚至是傷痛。所以,樂(lè)業(yè)對(duì)人的一生很重要。人一生做好一件事足已,何必三心二意,一事無(wú)成。
5,做人做事要有責(zé)任心。
曾經(jīng)懵懂無(wú)知,不知責(zé)任心是那般,就算今天我們依然迷茫,都說(shuō)責(zé)任心是做好一件事,一份工作的保證。我們將要踏進(jìn)社會(huì),我們將會(huì)面臨對(duì)工作的責(zé)任、對(duì)社會(huì)的責(zé)任、對(duì)家庭的責(zé)任,我想只有一個(gè)擁有責(zé)任心的人才能走好自己的人生旅途。古人云“一息尚存,此志不容稍懈”,“鞠躬盡瘁,死而后已”。無(wú)論什么職業(yè),責(zé)任心、責(zé)任意識(shí)是做好工作的內(nèi)在動(dòng)力,記得培訓(xùn)中心老師曾經(jīng)說(shuō)過(guò),內(nèi)因決定外因,責(zé)任心是做好一件事的源動(dòng)力。
知識(shí)改變命運(yùn) 004km.cn 軟件成就未來(lái) 湖南軟件職業(yè)學(xué)院
HNSERJ20080101
五.個(gè)人總結(jié)
人生的每一步旅途中,總有著一道難以逾越的鴻溝,對(duì)于我們不是缺少勇氣,而是沒(méi)有思想,惰性取代了我們?cè)镜倪M(jìn)取心,而我們選擇了自甘墮落,碌碌無(wú)為的虛度光陰,今天之前的錯(cuò)誤使我們選擇的懲罰,在軟件學(xué)院,如果只要用心去學(xué),不說(shuō)精益求精,至少可以學(xué)會(huì)謀生之道,當(dāng)然不排除學(xué)院本省一些不利因素,離開軟件學(xué)院,我們無(wú)從追究對(duì)與錯(cuò),因?yàn)闊o(wú)法挽回失去的光陰,一寸光陰一寸金,寸金難買寸光陰。這次我想我會(huì)很用心的去學(xué)習(xí)!盡量把他做到完美,至少自己要九十分的滿意我才會(huì)交出我培訓(xùn)的心得體會(huì)。
天下大事必做于細(xì)。普通人自然作一些小事,怕只怕小事也做不好,小事也做不到位。身邊有很多人總不屑于做具體的事,盲目地相信“天將降大任于斯人也”。孰不知這是及其錯(cuò)誤的心態(tài),試著去做好自己的事實(shí)屬不易。不要以為總理比村長(zhǎng)好當(dāng)。有其職斯有其責(zé),有其責(zé)斯有其憂。如果力不及所負(fù),才不及所任,必然禍及自身,狼狽不堪,若做錯(cuò)事也難辭其咎。所以用心做好身邊的每一件小事,不積細(xì)流,何以成江海。所謂成功,就是在平凡中做出不平凡的堅(jiān)持,而偉大就是平凡的積累。蒲老師曾經(jīng)說(shuō)過(guò),做正確的事,正確的做事,在這個(gè)告訴信息化的時(shí)代,細(xì)節(jié)決定成敗,方法與態(tài)度決定了效率。
“博學(xué)之,審問(wèn)之,慎思之,明辯之,篤行之?!?時(shí)下,IT行業(yè)對(duì)人才的需求是很大而且持續(xù),這更加為我夢(mèng)想的實(shí)現(xiàn)增添了砝碼,激勵(lì)自己朝著夢(mèng)想的云向更大的努力奮斗,只待好風(fēng)憑借力,送我上青云!“少而好學(xué),如日出之陽(yáng)”,不管是現(xiàn)在還是將來(lái),我們都應(yīng)不斷地加強(qiáng)學(xué)習(xí),不斷地給自己“充電”,才能開拓進(jìn)取,勇于創(chuàng)新,不至于被社會(huì)淘汰。只要在學(xué)習(xí)的過(guò)程中保持著激情,多做多思考,再加上一顆充滿夢(mèng)想和遠(yuǎn)大抱負(fù)的心,我相信人人都可以成功。
知識(shí)改變命運(yùn) 004km.cn 軟件成就未來(lái)
第五篇:Java學(xué)習(xí)心得[范文]
轉(zhuǎn)自:http://java.chinaitlab.com/base/870395.html
軟件開發(fā)之路是充滿荊棘與挑戰(zhàn)之路,也是充滿希望之路。JAVA學(xué)習(xí)也是如此,沒(méi)有捷徑可走。夢(mèng)想像《天龍八部》中虛竹一樣被無(wú)崖子醍醐灌頂而輕松獲得一甲子功力,是很不現(xiàn)實(shí)的。每天仰天大叫“天神啊,請(qǐng)賜給我一本葵花寶典吧”,殊不知即使你獲得了葵花寶典,除了受自宮其身之苦外,你也不一定成得了“東方不敗”,倒是成“西方失敗”的幾率高一點(diǎn)。
“不走彎路,就是捷徑”,佛經(jīng)說(shuō)的不無(wú)道理。
1.如何學(xué)習(xí)程序設(shè)計(jì)?
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)然也有許多共通的地方。
1.1 培養(yǎng)興趣
興趣是能夠讓你堅(jiān)持下去的動(dòng)力。如果只是把寫程序作為謀生的手段的話,你會(huì)活的很累,也太對(duì)不起自己了。多關(guān)心一些行業(yè)趣事,多想想蓋茨。不是提倡天天做白日夢(mèng),但人要是沒(méi)有了夢(mèng)想,你覺得有味道嗎?可能像許多深圳本地農(nóng)民一樣,打打麻將,喝喝功夫茶,拜拜財(cái)神爺;每個(gè)月就有幾萬(wàn)十幾萬(wàn)甚至更多的進(jìn)帳,憑空多出個(gè)“食利階層”.你認(rèn)為,這樣有味道嗎?有空多到一些程序員論壇轉(zhuǎn)轉(zhuǎn),你會(huì)發(fā)現(xiàn),他們其實(shí)很樂(lè)觀幽默,時(shí)不時(shí)會(huì)冒出智慧的火花。
1.2 慎選程序設(shè)計(jì)語(yǔ)言
男怕入錯(cuò)行,女怕嫁錯(cuò)郎。初學(xué)者選擇程序設(shè)計(jì)語(yǔ)言需要謹(jǐn)慎對(duì)待。軟件開發(fā)不僅僅是掌握一門編程語(yǔ)言了事,它還需要其他很多方面的背景知識(shí)。軟件開發(fā)也不僅僅局限于某幾個(gè)領(lǐng)域,而是已經(jīng)滲透到了各行各業(yè)幾乎每一個(gè)角落。
如果你對(duì)硬件比較感興趣,你可以學(xué)習(xí)C語(yǔ)言/匯編語(yǔ)言,進(jìn)入硬件開發(fā)領(lǐng)域。如果你對(duì)電信的行業(yè)知識(shí)及網(wǎng)絡(luò)比較熟悉,你可以在C/C++等之上多花時(shí)間,以期進(jìn)入電信軟件開發(fā)領(lǐng)域。如果你對(duì)操作系統(tǒng)比較熟悉,你可以學(xué)習(xí)C/Linux等等,為L(zhǎng)inux內(nèi)核開發(fā)/驅(qū)動(dòng)程序開發(fā)/嵌入式開發(fā)打基礎(chǔ)。如果你想介入到應(yīng)用范圍最廣泛的應(yīng)用軟件開發(fā)(包括電子商務(wù)電子政務(wù)系統(tǒng))的話,你可以選擇J2EE或。NET,甚至LAMP組合。每個(gè)領(lǐng)域要求的背景知識(shí)不一樣。做應(yīng)用軟件需要對(duì)數(shù)據(jù)庫(kù)等很熟悉。總之,你需要根據(jù)自己的特點(diǎn)來(lái)選擇合適你的編程語(yǔ)言。
1.3 要腳踏實(shí)地,快餐式的學(xué)習(xí)不可取
先分享一個(gè)故事。有一個(gè)小朋友,他很喜歡研究生物學(xué),很想知道那些蝴蝶如何從蛹?xì)だ锍鰜?lái),變成蝴蝶便會(huì)飛。有一次,他走到草原上面看見一個(gè)蛹,便取了回家,然后看著,過(guò)了幾天以后,這個(gè)蛹出了一條裂痕,看見里面的蝴蝶開始掙扎,想抓破蛹?xì)わw出來(lái)。這個(gè)過(guò)程達(dá)數(shù)小時(shí)之久,蝴蝶在蛹里面很辛苦地拼命掙扎,怎么也沒(méi)法子走出來(lái)。這個(gè)小孩看著看著不忍心,就想不如讓我?guī)蛶退?,便隨手拿起剪刀在蛹上剪開,使蝴蝶破蛹而出。但蝴蝶出來(lái)以后,因?yàn)槌岚虿粔蛄?,變得很臃腫,飛不起來(lái)。
這個(gè)故事給我們的啟示是:欲速則不達(dá)。
浮躁是現(xiàn)代人最普遍的心態(tài),能怪誰(shuí)?也許是貧窮落后了這么多年的緣故,就像當(dāng)年的大躍進(jìn)一樣,都想大步跨入共產(chǎn)主義社會(huì)?,F(xiàn)在的軟件公司、客戶、政府、學(xué)校、培訓(xùn)機(jī)構(gòu)等等到處彌漫著浮躁之氣。就拿筆者比較熟悉的深圳IT培訓(xùn)行業(yè)來(lái)說(shuō)吧,居然有的打廣告宣稱“參加培訓(xùn),100%就業(yè)”,居然報(bào)名的學(xué)生不少,簡(jiǎn)直是藐視天下程序員。社會(huì)環(huán)境如是,我們不能改變,只能改變自己,鬧市中的安寧,彌足珍貴。許多初學(xué)者C++/JAVA沒(méi)開始學(xué),立馬使用VC/JBuilder,會(huì)使用VC/JBuilder開發(fā)一個(gè)Hello World程序,就忙不迭的向世界宣告,“我會(huì)軟件開發(fā)了”,簡(jiǎn)歷上也大言不慚地寫上“精通VC/JAVA”.結(jié)果到軟件公司面試時(shí)要么被三兩下打發(fā)走了,要么被駁的體無(wú)完膚,無(wú)地自容。到處碰壁之后才知道捧起《C++編程思想》《JAVA編程思想》仔細(xì)鉆研,早知如此何必當(dāng)初呀。
“你現(xiàn)在講究簡(jiǎn)單方便,你以后的路就長(zhǎng)了”,好象也是佛經(jīng)中的勸戒。
1.4 多實(shí)踐,快實(shí)踐
彭端淑的《為學(xué)一首示子侄》中有窮和尚與富和尚的故事。
從前,四川邊境有兩個(gè)和尚,一個(gè)貧窮,一個(gè)有錢。一天,窮和尚對(duì)富和尚說(shuō):“我打算去南海朝圣,你看怎么樣?”富和尚說(shuō):“這里離南海有幾千里遠(yuǎn),你靠什么去呢?”窮和尚說(shuō):“我只要一個(gè)水缽,一個(gè)飯碗就夠了?!备缓蜕袨殡y地說(shuō):“幾年前我就打算買條船去南海,可至今沒(méi)去成,你還是別去吧!” 一年以后,富和尚還在為租賃船只籌錢,窮和尚卻已經(jīng)從南海朝圣回來(lái)了。
這個(gè)故事可解讀為:任何事情,一旦考慮好了,就要馬上上路,不要等到準(zhǔn)備周全之后,再去干事情。假如事情準(zhǔn)備考慮周全了再上路的話,別人恐怕捷足先登了。軟件開發(fā)是一門工程學(xué)科,注重的就是實(shí)踐,“君子動(dòng)口不動(dòng)手”對(duì)軟件開發(fā)人員來(lái)講根本就是錯(cuò)誤的,他們提倡“動(dòng)手至上”,但別害怕,他們大多溫文爾雅,沒(méi)有暴力傾向,雖然有時(shí)候蓬頭垢面的一副“比爾蓋茨”樣。有前輩高人認(rèn)為,學(xué)習(xí)編程的秘訣是:編程、編程、再編程,筆者深表贊同。不僅要多實(shí)踐,而且要快實(shí)踐。我們?cè)诳磿臅r(shí)候,不要等到你完全理解了才動(dòng)手敲代碼,而是應(yīng)該在看書的同時(shí)敲代碼,程序運(yùn)行的各種情況可以讓你更快更牢固的掌握知識(shí)點(diǎn)。
1.5 多參考程序代碼
程序代碼是軟件開發(fā)最重要的成果之一,其中滲透了程序員的思想與靈魂。許多人被《仙劍奇?zhèn)b傳》中凄美的愛情故事感動(dòng),悲劇的結(jié)局更有一種缺憾美。為什么要以悲劇結(jié)尾?據(jù)說(shuō)是因?yàn)閷憽断蓜ζ鎮(zhèn)b傳》的程序員失戀而安排了這樣的結(jié)局,他把自己的感覺融入到游戲中,卻讓眾多的仙劍迷扼腕嘆息。
多多參考代碼例子,對(duì)JAVA而言有參考文獻(xiàn)[4.3],有API類的源代碼(JDK安裝目錄下的src.zip文件),也可以研究一些開源的軟件或框架。1.6 加強(qiáng)英文閱讀能力
對(duì)學(xué)習(xí)編程來(lái)說(shuō),不要求英語(yǔ),但不能一點(diǎn)不會(huì),.最起碼像JAVA API文檔(參考文獻(xiàn)[4.4])這些東西還是要能看懂的,連猜帶懵都可以;旁邊再開啟一個(gè)“金山詞霸”.看多了就會(huì)越來(lái)越熟練。在學(xué)JAVA的同時(shí)學(xué)習(xí)英文,一箭雙雕多好。另外好多軟件需要到英文網(wǎng)站下載,你要能夠找到它們,這些是最基本的要求。英語(yǔ)好對(duì)你學(xué)習(xí)有很大的幫助??谡Z(yǔ)好的話更有機(jī)會(huì)進(jìn)入管理層,進(jìn)而可以成為剝削程序員的“周扒皮”.1.7 萬(wàn)不得已才請(qǐng)教別人
筆者在ChinaITLab網(wǎng)校的在線輔導(dǎo)系統(tǒng)中解決學(xué)生問(wèn)題時(shí)發(fā)現(xiàn),大部分的問(wèn)題學(xué)生稍做思考就可以解決。請(qǐng)教別人之前,你應(yīng)該先回答如下幾個(gè)問(wèn)題。
你是否在google中搜索了問(wèn)題的解決辦法?
你是否查看了JAVA API文檔?
你是否查找過(guò)相關(guān)書籍?
你是否寫代碼測(cè)試過(guò)?
如果回答都是“是”的話,而且還沒(méi)有找到解決辦法,再問(wèn)別人不遲。要知道獨(dú)立思考的能力對(duì)你很重要。要知道程序員的時(shí)間是很寶貴的。
1.8 多讀好書
書中自有顏如玉。比爾?蓋茨是一個(gè)飽讀群書的人。雖然沒(méi)有讀完大學(xué),但九歲的時(shí)候比爾?蓋茨就已經(jīng)讀完了所有的百科全書,所以他精通天文、歷史、地理等等各類學(xué)科,可以說(shuō)比爾?蓋茨不僅是當(dāng)今世界上金錢的首富,而且也可以稱得上是知識(shí)的巨富。
筆者在給學(xué)生上課的時(shí)候經(jīng)常會(huì)給他們推薦書籍,到后來(lái)學(xué)生實(shí)在忍無(wú)可忍開始抱怨,“天吶,這么多書到什么時(shí)候才能看完了”,“學(xué)軟件開發(fā),感覺上了賊船”.這時(shí)候,我的回答一般是,“別著急,什么時(shí)候帶你們?nèi)タ纯次业臅?,到現(xiàn)在每月花在技術(shù)書籍上的錢400元,這在軟件開發(fā)人員之中還只能夠算是中等的”,學(xué)生當(dāng)場(chǎng)暈倒。(注:這一部分學(xué)生是剛學(xué)軟件開發(fā)的)
1.9 使用合適的工具
工欲善其事必先利其器。軟件開發(fā)包含各種各樣的活動(dòng),需求收集分析、建立用例模型、建立分析設(shè)計(jì)模型、編程實(shí)現(xiàn)、調(diào)試程序、自動(dòng)化測(cè)試、持續(xù)集成等等,沒(méi)有工具幫忙可以說(shuō)是寸步難行。工具可以提高開發(fā)效率,使軟件的質(zhì)量更高BUG更少。組合稱手的武器。到飛花摘葉皆可傷人的境界就很高了,無(wú)招勝有招,手中無(wú)劍心中有劍這樣的境界幾乎不可企及。
2.軟件開發(fā)學(xué)習(xí)路線
兩千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒進(jìn)也不保守并非中庸之道,而是找尋學(xué)習(xí)軟件開發(fā)的正確路線與規(guī)律。
從軟件開發(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)該努力往上走。讓我們先整理一下開發(fā)應(yīng)用軟件需要學(xué)習(xí)的主要技術(shù)。
A.基礎(chǔ)理論知識(shí),如操作系統(tǒng)、編譯原理、數(shù)據(jù)結(jié)構(gòu)與算法、計(jì)算機(jī)原理等,它們并非不重要。如不想成為計(jì)算機(jī)科學(xué)家的話,可以采取“用到的時(shí)候再來(lái)學(xué)”的原則。
B.一門編程語(yǔ)言,現(xiàn)在基本上都是面向?qū)ο蟮恼Z(yǔ)言,JAVA/C++/C#等等。如果做WEB開發(fā)的話還要學(xué)習(xí)HTML/JavaScript等等。
C.一種方法學(xué)或者說(shuō)思想,現(xiàn)在基本都是面向?qū)ο笏枷耄∣OA/OOD/設(shè)計(jì)模式)。由此而衍生的基于組件開發(fā)CBD/面向方面編程AOP等等。
D.一種關(guān)系型數(shù)據(jù)庫(kù),ORACLE/SqlServer/DB2/MySQL等等
E.一種提高生產(chǎn)率的IDE集成開發(fā)環(huán)境JBuilder/Eclipse/VS.NET等。
F.一種UML建模工具,用ROSE/VISIO/鋼筆進(jìn)行建模。
G.一種軟件過(guò)程,RUP/XP/CMM等等,通過(guò)軟件過(guò)程來(lái)組織軟件開發(fā)的眾多活動(dòng),使開發(fā)流程專業(yè)化規(guī)范化。當(dāng)然還有其他的一些軟件工程知識(shí)。
H.項(xiàng)目管理、體系結(jié)構(gòu)、框架知識(shí)。
正確的路線應(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ì)有撥云見日之感。面向?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í)軟件開發(fā)的主線,而其余的作為輔線。
4)。軟件工程師著重于B、C、E、D;軟件設(shè)計(jì)師著重于B、C、E、D、F;架構(gòu)設(shè)計(jì)師著重于C、F、H.3.如何學(xué)習(xí)JAVA?
3.1 JAVA學(xué)習(xí)路線
3.1.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í)際開發(fā)還有很長(zhǎng)的一段路要走。
3.1.2 OO思想的領(lǐng)悟
掌握了基礎(chǔ)語(yǔ)法和JAVA程序運(yùn)行原理后,我們就可以用JAVA語(yǔ)言實(shí)現(xiàn)面向?qū)ο蟮乃枷肓?。面向?qū)ο?,是一種方法學(xué);是獨(dú)立于語(yǔ)言之外的編程思想;是CBD基于組件開發(fā)的基礎(chǔ);屬于強(qiáng)勢(shì)技術(shù)之一。當(dāng)以后因工作需要轉(zhuǎn)到別的面向?qū)ο笳Z(yǔ)言的時(shí)候,你會(huì)感到特別的熟悉親切,學(xué)起來(lái)像喝涼水這么簡(jiǎn)單。
使用面向?qū)ο蟮乃枷脒M(jìn)行開發(fā)的基本過(guò)程是:
●調(diào)查收集需求。
●建立用例模型。
●從用例模型中識(shí)別分析類及類與類之間的靜態(tài)動(dòng)態(tài)關(guān)系,從而建立分析模型。
●細(xì)化分析模型到設(shè)計(jì)模型。
●用具體的技術(shù)去實(shí)現(xiàn)。
●測(cè)試、部署、總結(jié)。3.1.3 基本API的學(xué)習(xí)
進(jìn)行軟件開發(fā)的時(shí)候,并不是什么功能都需要我們?nèi)?shí)現(xiàn),也就是經(jīng)典名言所說(shuō)的“不需要重新發(fā)明輪子”.我們可以利用現(xiàn)成的類、組件、框架來(lái)搭建我們的應(yīng)用,如SUN公司編寫好了眾多類實(shí)現(xiàn)一些底層功能,以及我們下載過(guò)來(lái)的JAR文件中包含的類,我們可以調(diào)用類中的方法來(lái)完成某些功能或繼承它。那么這些類中究竟提供了哪些方法給我們使用?方法的參數(shù)個(gè)數(shù)及類型是?類的構(gòu)造器需不需要參數(shù)?總不可能SUN公司的工程師打國(guó)際長(zhǎng)途甚至飄洋過(guò)海來(lái)告訴你他編寫的類該如何使用吧。他們只能提供文檔給我們查看,JAVA DOC文檔就是這樣的文檔,它可以說(shuō)是程序員與程序員交流的文檔。
基本API指的是實(shí)現(xiàn)了一些底層功能的類,通用性較強(qiáng)的API,如字符串處理/輸入輸出等等。我們又把它成為類庫(kù)。熟悉API的方法一是多查JAVA DOC文檔,二是使用JBuilder/Eclipse等IDE的代碼提示功能。
3.1.4 特定API的學(xué)習(xí)
JAVA介入的領(lǐng)域很廣泛,不同的領(lǐng)域有不同的API,沒(méi)有人熟悉所有的API,對(duì)一般人而言只是熟悉工作中要用到的API.如果你做界面開發(fā),那么你需要學(xué)習(xí)Swing/AWT/SWT等API;如果你進(jìn)行網(wǎng)絡(luò)游戲開發(fā),你需要深入了解網(wǎng)絡(luò)API/多媒體API/2D3D等;如果你做WEB開發(fā),就需要熟悉Servlet等API啦??傊枰鶕?jù)工作的需要或你的興趣發(fā)展方向去選擇學(xué)習(xí)特定的API.3.1.5 開發(fā)工具的用法
在學(xué)習(xí)基礎(chǔ)語(yǔ)法與基本的面向?qū)ο蟾拍顣r(shí),從鍛煉語(yǔ)言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時(shí)候不要急于上手JBuilder/Eclipse等集成開發(fā)環(huán)境,以免過(guò)于關(guān)注IDE的強(qiáng)大功能而分散對(duì)JAVA技術(shù)本身的注意力。過(guò)了這一階段你就可以開始熟悉IDE了。
程序員日常工作包括很多活動(dòng),編輯、編譯及構(gòu)建、調(diào)試、單元測(cè)試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項(xiàng)活動(dòng)都有專門的工具,如果獨(dú)立使用這些工具的話,你將會(huì)很痛苦,你需要在堆滿工具的任務(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,讓我們的開發(fā)變得更輕松。應(yīng)該說(shuō)IDE發(fā)展的趨勢(shì)就是集成軟件開發(fā)中要用到的幾乎所有工具。
從開發(fā)效率的角度考慮,使用IDE是必經(jīng)之路,也是從一個(gè)學(xué)生到一個(gè)職業(yè)程序員轉(zhuǎn)變的里程碑。
JAVA開發(fā)使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder占有的市場(chǎng)份額是最大的。JBuilder在近幾年來(lái)一直是JAVA集成開發(fā)環(huán)境中的霸主,它是由備受程序員尊敬的Borland公司開發(fā),在硝煙彌漫的JAVA IDE大戰(zhàn)中,以其快速的版本更新?lián)魯BM的Visual Age for JAVA等而成就一番偉業(yè)。IBM在Visual Age for JAVA上已經(jīng)無(wú)利可圖之下,干脆將之貢獻(xiàn)給開源社區(qū),成為Eclipse的前身,真所謂“柳暗花明又一村”.浴火重生的Eclipse以其開放式的插件擴(kuò)展機(jī)制、免費(fèi)開源獲得廣大程序員(包括幾乎所有的骨灰級(jí)程序員)的青睞,極具發(fā)展?jié)摿Α?/p>
3.1.6 學(xué)習(xí)軟件工程
對(duì)小型項(xiàng)目而言,你可能認(rèn)為軟件工程沒(méi)太大的必要。隨著項(xiàng)目的復(fù)雜性越來(lái)越高,軟件工程的必要性才會(huì)體現(xiàn)出來(lái)。參見“軟件開發(fā)學(xué)習(xí)路線”小節(jié)。
3.2學(xué)習(xí)要點(diǎn)
確立的學(xué)習(xí)路線之后,我們還需要總結(jié)一下JAVA的學(xué)習(xí)要點(diǎn),這些要點(diǎn)在前文多多少少提到過(guò),只是筆者覺得這些地方特別要注意才對(duì)它們進(jìn)行匯總,不要嫌我婆婆媽媽啊。
3.2.1勤查API文檔
當(dāng)程序員編寫好某些類,覺得很有成就感,想把它貢獻(xiàn)給各位苦難的同行。這時(shí)候你要使用“javadoc”工具(包含在JDK中)生成標(biāo)準(zhǔn)的JAVA DOC文檔,供同行使用。J2SE/J2EE/J2ME的DOC文檔是程序員與程序員交流的工具,幾乎人手一份,除了菜鳥之外。
對(duì)待DOC文檔要像毛主席語(yǔ)錄,早上起床念一遍,吃飯睡覺前念一遍。
當(dāng)需要某項(xiàng)功能的時(shí)候,你應(yīng)該先查相應(yīng)的DOC文檔看看有沒(méi)有現(xiàn)成的實(shí)現(xiàn),有的話就不必勞神費(fèi)心了直接用就可以了,找不到的時(shí)候才考慮自己實(shí)現(xiàn)。使用步驟一般如下:
●找特定的包,包一般根據(jù)功能組織。
●找需要使用類,類命名規(guī)范的話我們由類的名字可猜出一二。
●選擇構(gòu)造器,大多數(shù)使用類的方式是創(chuàng)建對(duì)象。
●選擇你需要的方法。
3.2.2 查書/google->寫代碼測(cè)試->查看源代碼->請(qǐng)教別人
當(dāng)我們遇到問(wèn)題的時(shí)候該如何解決?
這時(shí)候不要急著問(wèn)別人,太簡(jiǎn)單的問(wèn)題,沒(méi)經(jīng)過(guò)思考的問(wèn)題,別人會(huì)因此而瞧不起你??梢韵日艺視?,到google中搜一下看看,絕大部分問(wèn)題基本就解決了。而像“某些類/方法如何使用的問(wèn)題”,DOC文檔就是答案。對(duì)某些知識(shí)點(diǎn)有疑惑是,寫代碼測(cè)試一下,會(huì)給你留下深刻的印象。而有的問(wèn)題,你可能需要直接看API的源代碼驗(yàn)證你的想法。萬(wàn)不得已才去請(qǐng)教別人。
3.2.3學(xué)習(xí)開源軟件的設(shè)計(jì)思想
JAVA領(lǐng)域有許多源代碼開放的工具、組件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive論壇、PetStore寵物店等等多如牛毛。這些可是前輩給我們留下的瑰寶呀。入寶山而空手歸,你心甘嗎?對(duì)這些工具、框架進(jìn)行分析,領(lǐng)會(huì)其中的設(shè)計(jì)思想,有朝一日說(shuō)不定你也能寫一個(gè)XXX框架什么的,風(fēng)光一把。分析開源軟件其實(shí)是你提高技術(shù)、提高實(shí)戰(zhàn)能力的便捷方法。
3.2.4 規(guī)范的重要性
沒(méi)有規(guī)矩,不成方圓。這里的規(guī)范有兩層含義。第一層含義是技術(shù)規(guī)范,多讀規(guī)范,這是最權(quán)威準(zhǔn)確最新的教材。第二層含義是編程規(guī)范,如果你使用了大量的獨(dú)特算法,富有個(gè)性的變量及方法的命名方式;同時(shí),沒(méi)給程序作注釋,以顯示你的編程功底是多么的深厚。這樣的代碼別人看起來(lái)像天書,要理解談何容易,更不用說(shuō)維護(hù)了,必然會(huì)被無(wú)情地掃入垃圾堆。
3.2.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)的書看看;學(xué)JDBC的時(shí)候復(fù)習(xí)數(shù)據(jù)庫(kù)技術(shù);采取的依然是“需要的時(shí)候再學(xué)”的原則。
4.結(jié)束語(yǔ)
需要強(qiáng)調(diào)的是,學(xué)習(xí)軟件開發(fā)確實(shí)有一定的難度,也很辛苦,需要付出很多努力,但千萬(wàn)不要半途而廢。本文如果能對(duì)一直徘徊在JAVA神殿之外的朋友有所幫助的話,筆者也欣慰了。