第一篇:java學(xué)習(xí)報(bào)告
經(jīng)過(guò)一個(gè)學(xué)期的學(xué)習(xí),Java的課程已經(jīng)結(jié)束了??墒俏抑?,學(xué)習(xí)java的路上,我們才剛剛起步。學(xué)Java之前我聽許多人說(shuō)Java很難,學(xué)了之后我感覺(jué)Java確實(shí)不容易,想學(xué)好它并非易事。
學(xué)習(xí)java天賦是很重要,但不是絕對(duì)的至少我是這么認(rèn)為的!我想說(shuō)的是我認(rèn)為態(tài)度決定一切,Java的J2SE是Java的核心基礎(chǔ),學(xué)好SE部分對(duì)Java后期的深入學(xué)習(xí)非常重要。在SE部分,有許多的知識(shí)要點(diǎn):類的概念、類的繼承、多態(tài)、接口、面向?qū)ο蟮鹊取?duì)于這一階段的學(xué)習(xí),除了課堂上的聽講,最最重要的是代碼的實(shí)踐,通過(guò)編寫代碼來(lái)理解上述所說(shuō)的知識(shí)點(diǎn)的,將抽象的東西變成可以被你理解,應(yīng)用的工具,熟能生巧嘛。
其次,學(xué)習(xí)的方法也很重要!好的方法會(huì)事半功倍哦!例如在編寫代碼的過(guò)程中可能會(huì)有這樣那樣的問(wèn)題,遇到問(wèn)題請(qǐng)教別人是一種不錯(cuò)的方法,但是,我認(rèn)為最好不要馬上請(qǐng)教身邊的高手。自己先試著想辦法解決,分析問(wèn)題,對(duì)癥下藥,讓自己有解決問(wèn)題的成就感!但也不要在某個(gè)問(wèn)題上發(fā)費(fèi)太多的時(shí)間和精力,那樣會(huì)使你產(chǎn)生挫敗感,喪失學(xué)習(xí)的興趣。在適當(dāng)?shù)臅r(shí)候請(qǐng)教高手,你會(huì)受益良多!
再次,對(duì)于資源的使用,也是提高學(xué)習(xí)效率的方式。SUN公司提供了專門的API文檔,供開發(fā)者學(xué)習(xí)JAVA,遇到?jīng)]見過(guò)的類、接口或者某個(gè)方法,就可以通過(guò)查詢API文檔獲得幫助!不要忽視API文檔,它是你學(xué)習(xí)JAVA很重要的幫手!網(wǎng)絡(luò)也是另一種寶貴的資源,你可以下載一些JAVA的視頻教程來(lái)復(fù)習(xí)和鞏固知識(shí)、上網(wǎng)查詢你解決不了的問(wèn)題、到相關(guān)的論壇轉(zhuǎn)轉(zhuǎn),發(fā)表你未解決的問(wèn)題,聽聽高手的想法!
其實(shí)在剛接觸Java時(shí),自己確實(shí)有點(diǎn)暈,但經(jīng)過(guò)一段時(shí)間學(xué)習(xí),逐漸走出了迷霧。剛開始學(xué)習(xí)循環(huán)時(shí),我覺(jué)得那一塊很不熟悉,做題時(shí),思路半天才理出來(lái)。經(jīng)過(guò)一段時(shí)間的練習(xí),我漸漸的走出了第一個(gè)迷霧。但是到了第六章,我徹底暈了,看書看得也一知半解暈暈乎乎的。類與對(duì)象是在學(xué)了第七、八章后弄清的。到了最后一章,學(xué)到字符串時(shí),傳遞參數(shù)真讓我暈啊,然后我又是練習(xí),最后略微弄明白了點(diǎn)。我總結(jié)了我學(xué)Java的特點(diǎn):先是不懂,后明白,再次不懂,又明白,又一次暈,最后弄清。經(jīng)過(guò)三起三落,經(jīng)過(guò)幾個(gè)迷霧之后,我對(duì)Java也有了更為深入的了解,就學(xué)會(huì)了Java。
我覺(jué)得把Java學(xué)會(huì)的關(guān)鍵一點(diǎn)就是堅(jiān)持練習(xí)。學(xué)習(xí)Java時(shí)每天必須保證一定量的練習(xí),我們老師也說(shuō)學(xué)習(xí)編程語(yǔ)言沒(méi)有捷徑可走。真的,只有每天反復(fù)操作了,經(jīng)常寫代碼了,我們?cè)谟龅絾?wèn)題時(shí)才有一定的思路。欲速則不達(dá),學(xué)習(xí)編程語(yǔ)言需要一個(gè)比較漫長(zhǎng)的階段,不能一步登天,這需要一個(gè)過(guò)程,在這個(gè)過(guò)程中慢慢積累經(jīng)驗(yàn),扎實(shí)基礎(chǔ)。不要以為寫出了一個(gè)簡(jiǎn)單的小程序,就認(rèn)為自己已經(jīng)學(xué)的很好了,這只不過(guò)是在你學(xué)習(xí)編程過(guò)程中一個(gè)小小的實(shí)踐。不要滿足于現(xiàn)狀,要不斷完善自己的知識(shí)體系,善于總結(jié)實(shí)踐經(jīng)驗(yàn)。要端正自己的學(xué)習(xí)態(tài)度,是主動(dòng)去學(xué),而不是被動(dòng)!提高自學(xué)能力。學(xué)習(xí)編程的秘訣是:編程、編程、再編程。不僅要多實(shí)踐,而且要快實(shí)踐。
我們?cè)诳磿臅r(shí)候,不要等到完全理解了才動(dòng)手敲代碼,而是應(yīng)該在看書的同時(shí)敲代碼,程序運(yùn)行的各種情況可以讓更快更牢固的掌握知識(shí)點(diǎn)。程序代碼是軟件開發(fā)最重要的成果之一,其中滲透了程序員的思想與靈魂。當(dāng)你學(xué)習(xí)一個(gè)類以后,你就可以自己寫個(gè)簡(jiǎn)單的例子程序來(lái)運(yùn)行一下,看看有什么結(jié)果,然后再多調(diào)用幾個(gè)類的方法,看看運(yùn)行結(jié)果,這樣非常直觀的把類給學(xué)會(huì)了,而且記憶非常深刻。然后不應(yīng)該滿足把代碼調(diào)通,你應(yīng)該想想看如果我不這樣寫,換個(gè)方式,再試試行不行。記得哪個(gè)高人說(shuō)過(guò)學(xué)習(xí)編程就是個(gè)破壞的過(guò)程,把書上的例子,自己學(xué)習(xí)Documentation編寫的例子在運(yùn)行通過(guò)以后,不斷的嘗試著用不同的方法實(shí)現(xiàn),不斷的嘗試破壞代碼的結(jié)構(gòu),看看它會(huì)有什么結(jié)果。通過(guò)這樣的方式,你會(huì)很徹底的很精通的掌握J(rèn)ava。舉個(gè)例子,我們都編過(guò)Hello World,一開始很多同學(xué)不是很理解為什么main方法一定要這樣來(lái)定義public static void main(String[] args),能不能不這樣寫?我剛也有這樣的疑問(wèn)。想知道答案嗎?很簡(jiǎn)單,你把main改個(gè)名字運(yùn)行一下,看看報(bào)什么錯(cuò)誤,然后根據(jù)出錯(cuò)信息進(jìn)行分析;把main的public取掉,在試試看,報(bào)什么錯(cuò)誤;static去掉還能不能運(yùn)行;不知道m(xù)ain方法是否一定要傳一個(gè)String[]數(shù)組的,把String[]改掉,改成int[],或者String試試看;不知道是否必須寫args參數(shù)名稱的,也可以把a(bǔ)rgs改成別的名字,看看運(yùn)行結(jié)果如何。我當(dāng)初學(xué)習(xí)Java的時(shí)候就是這樣做的,把Hello World程序反復(fù)改了七八次,不斷運(yùn)行,分析運(yùn)行結(jié)果,最后就徹底明白為什么main方法是這樣定義的了。這樣雖然比較費(fèi)時(shí)間,不過(guò)一個(gè)例子程序這樣反復(fù)破壞幾次之后。我就對(duì)這個(gè)相關(guān)的知識(shí)徹底學(xué)通了。有時(shí)候甚至故意寫一些錯(cuò)誤的代碼來(lái)運(yùn)行,看看能否得到預(yù)期的運(yùn)行錯(cuò)誤。這樣對(duì)于編程的掌握是及其深刻的。
當(dāng)然學(xué)習(xí)環(huán)境對(duì)學(xué)習(xí)效率也很重要。在學(xué)習(xí)的這段日子,我感觸很多,我們班的學(xué)習(xí)氛圍還不錯(cuò),有時(shí)候大家一起討論、學(xué)習(xí)、共同進(jìn)步,有問(wèn)題也可以詢問(wèn)助教,比自己一個(gè)人閉門造車來(lái)的更有效果!講師在授課之余,還傳授很多其他方面的知識(shí),大大擴(kuò)展了我們的見識(shí),增加了學(xué)習(xí)的興趣!
學(xué)習(xí)是一個(gè)日積月累的過(guò)程,只有從菜鳥做起,一步步的來(lái),才能在學(xué)習(xí)JAVA的道路上留下你深深的腳印,在學(xué)習(xí)中享受!人之所以能,是相信能!同時(shí)在學(xué)習(xí)過(guò)程中應(yīng)該注意的幾點(diǎn)有:
1)首先是java環(huán)境的配置,對(duì)于已經(jīng)習(xí)慣雙擊“setup”進(jìn)行安裝的我們來(lái)說(shuō),安裝完畢后就可以使用軟件了,但是java不是這樣,安裝完java jdk后需要對(duì)你所在的操作系統(tǒng)進(jìn)行環(huán)境的配置,設(shè)置一些最最基本的環(huán)境運(yùn)行變量。測(cè)試環(huán)境變量的配置是否正確。
2)添加你應(yīng)用所需的功能擴(kuò)展jar包。
3)配置好應(yīng)用需要的dll動(dòng)態(tài)鏈接庫(kù)文件。
4)在項(xiàng)目建立初期進(jìn)行輸出打包測(cè)試,這樣做的好處在于:應(yīng)用軟件的最終運(yùn)行狀態(tài)是軟件需要發(fā)布,并可以在其他用戶的計(jì)算機(jī)正確的運(yùn)行,項(xiàng)目初期就進(jìn)行輸出、安裝測(cè)試可以提早發(fā)現(xiàn)軟件的非編碼錯(cuò)誤,另一點(diǎn)是將軟件初期的GUI操作發(fā)布給用戶,可以讓用戶提出一些寶貴的軟件功能、界面上的整改意見,這樣可以使軟件更貼合用戶的需求。
5)多多閱讀相關(guān)知識(shí)點(diǎn)的英文資料,當(dāng)然好的中文資料也是不可少的。
6)多多訪問(wèn)一些技術(shù)論壇,國(guó)內(nèi)還是有一些不錯(cuò)的純技術(shù)論壇的,在哪里你可以看到j(luò)ava的方方面面,及時(shí)更新自己的知識(shí),“沖刷”自己的頭腦是非常必要的,國(guó)外的技術(shù)論壇有時(shí)候需要翻墻才能訪問(wèn),需要提前準(zhǔn)備好翻墻的工具。不過(guò)我發(fā)現(xiàn)臺(tái)灣的java論壇比國(guó)內(nèi)的好,從版面的設(shè)置到人的參與性都比國(guó)內(nèi)的要好,學(xué)習(xí)討論的氛圍也很濃厚。
7)多多寫寫問(wèn)題總結(jié),這樣可以使自己加深對(duì)問(wèn)題解決方法的理解,說(shuō)不定哪天你會(huì)有更好的方法來(lái)解決問(wèn)題。
8)多多學(xué)習(xí)別人的源代碼,要知道社會(huì)發(fā)展到今天都是后人站在前人肩膀上作出來(lái)的成就,必須要清楚的知道現(xiàn)在的工作都是靠一群人開發(fā)才能完成的,學(xué)習(xí)別人的代碼可以少走彎路,使自己更快的成長(zhǎng)。
9)看一些技術(shù)的原理性東西,當(dāng)然這個(gè)取決于你自己想從深層次的方面去應(yīng)用技術(shù)還是泛泛的應(yīng)用就行,每次都想快速的掌握他,雖然短時(shí)間里看起來(lái)很“繁榮”,但是當(dāng)需要深入應(yīng)用時(shí)就會(huì)發(fā)現(xiàn)心有余力而力不足,所以在適當(dāng)?shù)臅r(shí)間看一些技術(shù)原理性的東西是非常有必要的。
10)最后是一個(gè)個(gè)人習(xí)慣,在今天你打開計(jì)算機(jī)前或打開IDE前,先想好今天要完成哪些工作,昨天的問(wèn)題解決了嗎?如果沒(méi)有是否有了新的思路?軟件代碼的備份也很重要。
學(xué)習(xí)java就是件耗時(shí)間的事兒,如果不肯投入自己的時(shí)間,根本不可能在短時(shí)間就把java給學(xué)好了。有時(shí)候只是很簡(jiǎn)單的想法,但是要付出的很多很多才能把我的想法給實(shí)現(xiàn)了,所以我就決定要好好的把這件事情給做好了。我相信我是能做好的。前提是我必須要放下其他的東西,不能和同學(xué)一起出去玩兒,不能看電影,不能在網(wǎng)上浪費(fèi)時(shí)間,不能做的事情,實(shí)在是太多了,以前我認(rèn)為自己是個(gè)意志不堅(jiān)定的人,現(xiàn)在,就有一個(gè)機(jī)會(huì)來(lái)證明我自己不是那樣的人,我能長(zhǎng)久的堅(jiān)持去做一件事情,而且不懼所遇到的困難。學(xué)習(xí)是一個(gè)很反復(fù)的過(guò)程,不斷的出現(xiàn)錯(cuò)誤,不斷的調(diào)試,不斷的迷茫,不斷的清晰,這些都是必須要要經(jīng)歷的
第二篇:JAVA學(xué)習(xí)報(bào)告
java實(shí)習(xí)報(bào)告
摘要:古人有云:“紙上得來(lái)終覺(jué)淺,絕知此事要躬行”。自從走進(jìn)了大學(xué),距離工作就不遠(yuǎn)了,學(xué)校為了拓展我們學(xué)生自身的知識(shí)面,擴(kuò)大與社會(huì)的接觸面,增加個(gè)人在社會(huì)競(jìng)爭(zhēng)中的經(jīng)驗(yàn),鍛煉和提高我們的能力,以便在以后畢業(yè)后能真正走入社會(huì),在學(xué)習(xí)通信專業(yè)知識(shí)三年之后,組織我們進(jìn)行認(rèn)識(shí)與生產(chǎn)實(shí)習(xí)。認(rèn)識(shí)實(shí)習(xí)是教學(xué)與生產(chǎn)實(shí)際相結(jié)合的重要實(shí)踐性教學(xué)環(huán)節(jié)。它不僅讓我們學(xué)到了很多在課堂上根本就學(xué)不到的知識(shí),還使我們開闊了視野,增長(zhǎng)了見識(shí)。生產(chǎn)實(shí)習(xí)是對(duì)我們進(jìn)行專業(yè)基本訓(xùn)練,培養(yǎng)實(shí)踐動(dòng)手能力和向?qū)嵺`學(xué)習(xí),理論聯(lián)系實(shí)際的重要課程。,這有利于提高我們業(yè)務(wù)素質(zhì)和政治素質(zhì)。為我們以后更好把所學(xué)的知識(shí)運(yùn)用到實(shí)際工作中打下堅(jiān)實(shí)的基礎(chǔ)。在認(rèn)識(shí)與生產(chǎn)實(shí)習(xí)過(guò)程中,學(xué)校也以培養(yǎng)學(xué)生觀察問(wèn)題、解決問(wèn)題和向生產(chǎn)實(shí)際學(xué)習(xí)的能力和方法為目標(biāo)。
關(guān)鍵字:java、oracle數(shù)據(jù)庫(kù)、對(duì)象與類、線程、觸發(fā)器、游標(biāo)
前言
隨著計(jì)算機(jī)科學(xué)的迅速發(fā)展,計(jì)算機(jī)已深入到揉合社會(huì)的各個(gè)領(lǐng)域,它的應(yīng)用已不再局限于科學(xué)計(jì)算,以解決一些數(shù)學(xué)問(wèn)題,而且可以解決一些抽象化的具體問(wèn)題,更多地用于控制,管理及數(shù)據(jù)處理等非數(shù)值計(jì)算的處理工作,這便為我們?nèi)粘I钐峁┝撕芏喾奖?。如今程序設(shè)計(jì)的語(yǔ)言很多,再好的程序設(shè)計(jì)業(yè)要有一個(gè)比較完善、清晰的思路——算法。為了編寫一個(gè)好程序,必須分析待處理對(duì)象的特性以及各個(gè)處理對(duì)象之間的關(guān)系,以便能更好的解決問(wèn)題。
一、主要實(shí)習(xí)內(nèi)容 1.1實(shí)習(xí)目的
生活在這個(gè)信息化的時(shí)代,為了能夠在編程方面有所突破,能夠找到一份好的工作,就應(yīng)該好好了解一些知識(shí)。是由microsystems公司于1995年5月推出的java程序設(shè)計(jì)語(yǔ)言(以下簡(jiǎn)稱java語(yǔ)言)和java平臺(tái)的總稱。用java實(shí)現(xiàn)的hotjava瀏覽器(支持)顯示了java的魅力:跨平臺(tái)、動(dòng)態(tài)的、internet計(jì)算。從此,java被廣泛接受并推動(dòng)了web的迅速發(fā)展,常用的瀏覽器現(xiàn)在均支持java applet。另一方面,java技術(shù)也不斷更新。java平臺(tái)由java虛擬機(jī)(java virtual machine)和java 應(yīng)用編程接口(application programming interface、簡(jiǎn)稱api)構(gòu)成。java 應(yīng)用編程接口為java應(yīng)用提供了一個(gè)獨(dú)立于操作系統(tǒng)的標(biāo)準(zhǔn)接口,可分為基本部分和擴(kuò)展部分。在硬件或操作系統(tǒng)平臺(tái)上安裝一個(gè)java平臺(tái)之后,java應(yīng)用程序就可運(yùn)行。現(xiàn)在java平臺(tái)已經(jīng)嵌入了幾乎所有的操作系統(tǒng)。這樣java程序可以只編譯一次,就可以在各種系統(tǒng)中運(yùn)行。java應(yīng)用編程接口已經(jīng)從1.1x版發(fā)展到1.2版。目前常用的java平臺(tái)基于java1.4,最近版本為java1.7。oracle 是以高級(jí)結(jié)構(gòu)化查詢語(yǔ)言(sql)為基礎(chǔ)的大型關(guān)系數(shù)據(jù)庫(kù),通俗地講它是用方便邏輯管理的語(yǔ)言操縱大量有規(guī)律數(shù)據(jù)的集合。是目前最流行的客戶/服務(wù)器(client/server)體系結(jié)構(gòu)的數(shù)據(jù)庫(kù)之一。1.2實(shí)習(xí)內(nèi)容
1.2.1課程體系結(jié)構(gòu)
(1)java se:java核心語(yǔ)法、面向?qū)ο蟪绦蛟O(shè)計(jì)、繼承、接口和內(nèi)部類、異常處理、集合、多線程等
(2)以oracle為平臺(tái),介紹oracle數(shù)據(jù)庫(kù)的安裝,oracle體系結(jié)構(gòu),物理組件、權(quán)限分配,數(shù)據(jù)管理,深入講解數(shù)據(jù)庫(kù)設(shè)計(jì)范式。全面講解各類sql語(yǔ)句的使用,深入學(xué)習(xí)了oracle數(shù)據(jù)庫(kù)對(duì)象:tirgger(觸發(fā)器)、pl/sql語(yǔ)法,作用,使用游標(biāo)、超出過(guò)程、函數(shù)等問(wèn)題。
下面是我學(xué)習(xí)java的一些內(nèi)容:
(一)java的關(guān)鍵術(shù)語(yǔ): 1.java語(yǔ)言是簡(jiǎn)單的 java語(yǔ)言的語(yǔ)法與c語(yǔ)言和c++很相近。另一方面,java丟棄了c++中很少使用的、很難理解的、令人迷惑的那些特性,如操作符的重載、多繼承、自動(dòng)的強(qiáng)制類型的轉(zhuǎn)換。特別是java語(yǔ)言不使用指針。
2.java語(yǔ)言是一個(gè)面向?qū)ο蟮?/p>
java語(yǔ)言提供類、接口和繼承等原語(yǔ),只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實(shí)現(xiàn)機(jī)制。java語(yǔ)言全面支持動(dòng)態(tài)綁定,而c++語(yǔ)言只對(duì)虛函數(shù)使用動(dòng)態(tài)綁定??傊?,java語(yǔ)言是一個(gè)純的面向?qū)ο笤O(shè)計(jì)語(yǔ)言。3.java語(yǔ)言上分布式的
java語(yǔ)言支持internet應(yīng)用的開發(fā),在基本的java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用程序接口(java.net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫(kù),包括socket、urlcnnection等。4.java語(yǔ)言是健壯的
java的強(qiáng)類型機(jī)制、異常處理等是java程序健壯性的重要保證。對(duì)指針的丟棄是java的明智選擇。java的安全檢查機(jī)制使得java更具有健壯性。5.java語(yǔ)言是安全的
java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,java提供了一個(gè)安全機(jī)制以防惡意代碼的攻擊。除了java語(yǔ)言具有的許多安全特性外,java對(duì)通過(guò)網(wǎng)絡(luò)下載的類具有一個(gè)安全防范機(jī)制。6.java語(yǔ)言是體系結(jié)構(gòu)中立的 java程序(后綴為java的文件)在java平臺(tái)上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為class的文件),然后可以在實(shí)現(xiàn)這個(gè)java平臺(tái)的任何系統(tǒng)中運(yùn)行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境和軟件的開發(fā)。7.java語(yǔ)言是可移植
這種可移植性來(lái)源于體系結(jié)構(gòu)中立的,另外,java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類型的長(zhǎng)度。
8.java語(yǔ)言是多線程的
在java語(yǔ)言中,線程是一種特殊的對(duì)象,它必須由thread類或其子(孫)類來(lái)創(chuàng)建。通常有兩種方法來(lái)創(chuàng)建線程:其一,實(shí)用型構(gòu)為thread(runnable)的構(gòu)造子將一個(gè)實(shí)現(xiàn)了runnable接口的對(duì)象包裝成一個(gè)線程,其二,從thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對(duì)象即為線程。
(二)對(duì)象與類
類是構(gòu)造對(duì)象的模板或藍(lán)圖。
2.1、對(duì)成員內(nèi)部類的使用,如何定義內(nèi)部類對(duì)象: 在外部類里面訪問(wèn)內(nèi)部類:直接訪問(wèn)
在外部類外面訪問(wèn)成員內(nèi)部類: 外部類.內(nèi)部類 對(duì)象名=外部類對(duì)象.new 內(nèi)部類構(gòu)造器();2.2、成員內(nèi)部類和外部類屬性、方法相互訪問(wèn)
外部類訪問(wèn)成員內(nèi)部類的屬性或方法,需要在一個(gè)外部類的方法中引用內(nèi)部類構(gòu)造對(duì)象來(lái)使用內(nèi)部類的屬性和方法。
內(nèi)部類訪問(wèn)外部類的成員屬性或方法,則直接使用。2.3內(nèi)部類是一種特殊的(或者叫復(fù)雜的)方法。作用是用來(lái)完成外部類給定的復(fù)雜算法。
靜態(tài)內(nèi)部類:為部類的類屬性,或者叫復(fù)雜的類方法 2.4、對(duì)靜態(tài)內(nèi)部類的使用,如何定義靜態(tài)內(nèi)部類對(duì)象: 在外部類里面訪問(wèn)靜態(tài)內(nèi)部類:直接訪問(wèn)--在一個(gè)方法中定義靜態(tài)內(nèi)部類對(duì)象
外部類外面定義靜態(tài)內(nèi)部類對(duì)象:
外部類.內(nèi)部類 對(duì)象名=new 外部類.內(nèi)部類構(gòu)造器();2.5、靜態(tài)內(nèi)部類和外部類屬性、方法相互訪問(wèn)
外部類訪問(wèn)靜態(tài)內(nèi)部類的屬性或方法,需要在一個(gè)外部類的方法中引用內(nèi)部類構(gòu)造對(duì)象,然后來(lái)使用內(nèi)部類的屬性和方法。
靜態(tài)內(nèi)部類只能直接使用外部類的靜態(tài)屬性和方法。
注意:如何在內(nèi)部類里面訪問(wèn)外部類的this: 外部類名.this.局部類:在方法中定義的類
注意:局部類的角色和方法中的臨時(shí)變量一樣
局部類不能有訪問(wèn)修飾符
局部類的有效范圍和臨時(shí)變量一樣,僅僅存在于方法體內(nèi)。
局部類所處于的方法是否靜態(tài),來(lái)決定是否能訪問(wèn)外部類的成員屬性。局部類所定義的方法可以直接使用局部類定義對(duì)象。局部類體里面不能使用方法中的形參,但是可以使用常量形參
2.6局部類的使用,如何定義局部部類對(duì)象: 只能在所定義局部類的方法中定義局部類對(duì)象。2.7、局部類和外部類屬性、方法相互訪問(wèn)
1-局部類可以直接訪問(wèn)外部類的屬性以及方法,但是要考慮局部類所處于的方法是否靜態(tài),來(lái)決定是否能訪問(wèn)外部類的成員屬性以及成員方法。
2-外部類可以訪問(wèn)局部類的屬性和方法嗎? 可以:2.1-局部類繼承外部類 2.8-局部類將自己的對(duì)象引用傳給外部類自己類型的對(duì)象
然后使用多態(tài)的形式外部類就訪問(wèn)到了局部里的屬性以及方法。2.9 匿名內(nèi)部類
1-要求,匿名內(nèi)部類必須有指定的繼承類2-匿名內(nèi)部類的定義格式:
父類 對(duì)象名=new 父類(){ 匿名類定義過(guò)程體 };父接口 對(duì)象名=new 父接口(){ 匿名類定義過(guò)程體 };3-如何定義匿名類的構(gòu)造方法?原則上不存在匿名類的構(gòu)造器,但是可以使用匿名語(yǔ)句塊實(shí)現(xiàn)
匿名類中的匿名語(yǔ)句塊就會(huì)充當(dāng)構(gòu)造器的功能,只不過(guò)不能傳遞參數(shù) 2.10抽象方法:沒(méi)有方法體的方法
抽象方法必須用abstract關(guān)鍵字聲明
一個(gè)類如果含有抽象方法,就必須是抽象類。
抽象類作用:
1-不能直接調(diào)用自己的構(gòu)造器生成對(duì)象,但是可以被子類的構(gòu)造器使用super(...)調(diào)用,來(lái)開辟子類繼承父類的屬性空間
2-對(duì)未知的事物做一個(gè)預(yù)定:讓子類必須幫我實(shí)現(xiàn)一個(gè)方法。
抽象類:一個(gè)天生的父類
注意:含有抽象方法的類一定是抽象類,但是抽象類中不一定必須含有抽象方法
(三)線程的概念
多線程程序在較低的層次上擴(kuò)展了多任務(wù)的概念:一個(gè)程序同時(shí)執(zhí)行多個(gè)任務(wù)。通常,每一個(gè)任務(wù)稱為一個(gè)線程(thread),它是線程控制的簡(jiǎn)稱??梢酝瑫r(shí)運(yùn)行一個(gè)以上線程的程序稱為多線程程序。3.1線程的操作
生成線程類的方式,以及執(zhí)行的方式:
繼承thread,對(duì)象.start();實(shí)現(xiàn)runnable接口,new thread(對(duì)象).start();這兩種方式有缺點(diǎn):
1-優(yōu)點(diǎn)直接繼承thread中的方法,使用起來(lái)比較方便。缺點(diǎn),不能再繼承別的類,也就是一個(gè)純粹的線程類。
2-優(yōu)點(diǎn)實(shí)現(xiàn)runnable接口,不僅具備線程的功能,還可以繼承別類,完成非線程的功能。缺點(diǎn):沒(méi)有現(xiàn)成的線程功能方法使用。線程對(duì)象的生命周期:
主線程:用來(lái)啟動(dòng)別的線程的線程,稱為主線程,例如main線程就是mt和mt2的主線程
子線程:被別的線程啟動(dòng)的線程,稱為子線程。例如mt、mt2就是main的子線程
線程的守護(hù):隨著主線程的結(jié)束,子線程跟著結(jié)束,稱為子線程為守護(hù)線程。反之為非守護(hù)線程
設(shè)定守護(hù)線程: 子線程對(duì)象在start()之前,使用setdaemon(true)方法來(lái)設(shè)定。線程的調(diào)度
1-使線程暫時(shí)休眠 sleep(long time);2-使線程讓步 2.1、非指定讓步 thread.yield();注意:非指定讓步不一定可以讓出去。
3.2、指定讓步 指定讓給的線程對(duì)象.join();指定讓給的線程對(duì)象.join(指定讓出時(shí)間);線程同步:如果有多個(gè)線程在使用同一個(gè)資源對(duì)象時(shí),讓他們串行使用的方式。
線程同步方法:1-在資源對(duì)象上定義同步方法,當(dāng)一個(gè)線程在使用本資源對(duì)象時(shí),會(huì)在本對(duì)象上加鎖。
如果這時(shí)另一個(gè)線程來(lái)訪問(wèn)這個(gè)對(duì)象,又發(fā)現(xiàn)需要使用同步方法時(shí),本對(duì)象有被其他
線程加鎖了,我們第二個(gè)線程需要等待第一個(gè)線程執(zhí)行完畢后釋放了對(duì)象鎖,他才能繼續(xù)執(zhí)行。
注意:同步方法定義需要使用 synchronized 關(guān)鍵字修飾,同一時(shí)刻只能有一個(gè)線程執(zhí)行這個(gè)對(duì)象的同步方法。
即使,別的線程執(zhí)行這個(gè)對(duì)象的別的同步方法也不行。
一個(gè)對(duì)象如果有多個(gè)同步方法,同一時(shí)刻只能有一個(gè)同步方法被執(zhí)行。如果要使用 wait()notifyall()來(lái)進(jìn)行線程調(diào)度,需要兩個(gè)以上的線程。下面是在oracle數(shù)據(jù)庫(kù)中的學(xué)習(xí)內(nèi)容:
(一)數(shù)據(jù)庫(kù)打開分為三個(gè)階段 :
1-nomount : 作用—維護(hù)數(shù)據(jù)庫(kù)系統(tǒng)文件,2-mount:作用—維護(hù)用戶文件,3-open:作用:進(jìn)行數(shù)據(jù)訪問(wèn),對(duì)數(shù)據(jù)做增、刪、改、查
(二)sql語(yǔ)句的特點(diǎn)
1。綜合統(tǒng)一: 集數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)管理的功能于一體,語(yǔ)言風(fēng)格統(tǒng)一,可以獨(dú)立完成數(shù)據(jù)庫(kù)的全部操作。
2。高度非過(guò)程化——提出“做什么”而不是“怎么做” 面向集合的操作方式——結(jié)果是元組的集合 3。語(yǔ)言簡(jiǎn)潔,易學(xué)易用 只有7個(gè)動(dòng)詞(insert ,delete , update, select , drop, alter, create)
(三)注:需要管理員權(quán)限的用戶來(lái)操作 1-創(chuàng)建用戶:
create user 用戶名 identified by 密碼
注:新建的用戶缺少權(quán)限,需要分配使用權(quán)限才能連接
grant connect,resource to 用戶名(連接和數(shù)據(jù)資源使用權(quán)限)2-鎖定用戶: alter user 用戶名 account lock;3-解鎖用戶:
alter user 用戶名 account unlock;
(四)數(shù)據(jù)庫(kù)體系結(jié)構(gòu):結(jié)構(gòu)組件匯總
內(nèi)存結(jié)構(gòu)
系統(tǒng)全局區(qū)(sga):數(shù)據(jù)庫(kù)緩沖區(qū)高速緩存、重做緩沖區(qū)以及各種池 程序全局區(qū)(pga)進(jìn)程結(jié)構(gòu)
用戶進(jìn)程和服務(wù)器進(jìn)程 后臺(tái)進(jìn)程:smon、pmon、dbwn、ckpt、lgwr、arcn 等
存儲(chǔ)結(jié)構(gòu)邏輯:數(shù)據(jù)庫(kù)、表空間、段、區(qū)和 oracle 塊
物理:用于存儲(chǔ)數(shù)據(jù)、參數(shù)、重做和操作系統(tǒng)塊的文件 1.2.2實(shí)習(xí)成果
學(xué)習(xí)了java開發(fā)的相關(guān)知識(shí),掌握java開發(fā)的基本技術(shù),豐富java開發(fā)的實(shí)戰(zhàn)經(jīng)驗(yàn)。學(xué)習(xí)了sql的基礎(chǔ)知識(shí)及正確的運(yùn)用方法,和有關(guān)的技術(shù)。通過(guò)學(xué)習(xí),提高了分析、判斷和處理問(wèn)題的能力,鍛煉了自己的實(shí)際動(dòng)手能力,增強(qiáng)子的團(tuán)隊(duì)協(xié)作意識(shí),了解軟件開啊的思考角度和主要流程。為畢業(yè)之后能夠找到一份好工作奠定了基礎(chǔ)?;仡檶?shí)習(xí)的這段日子,從最初的新鮮感到后來(lái)的無(wú)不充實(shí),從最初對(duì)自己缺乏信心,在原老師的悉心教導(dǎo)下有問(wèn)必答,嚴(yán)謹(jǐn)認(rèn)真又充滿了親和力,讓我增添了信心,開始了認(rèn)真的學(xué)習(xí)。1)基本輸入輸出語(yǔ)句 //屏幕輸出
system.out.println(abc);system.out.print(abc);//對(duì)話框輸出
joptionpane.showmessagedialog(null, test);//屏幕輸入
scanner sn=new scanner(system.in);string info=sn.nextline();system.out.println(你好+info);//對(duì)話框輸入
string name=joptionpane.showinputdialog(請(qǐng)輸入你的姓名:);joptionpane.showmessagedialog(null, 你好+name);2)byte-->short-->int-->long-->float-->double 行。
循環(huán):有限次重復(fù)一種操作1 定義循環(huán)變量2 判斷循環(huán)條件 1滿足第一個(gè)條件時(shí),精度低的往精度高的轉(zhuǎn)換自動(dòng)進(jìn)行,否則強(qiáng)制進(jìn) 3 變更循環(huán)變量
3)方法覆蓋的目的(原因):當(dāng)我們子類繼承父類的方法不適用時(shí),需要方法的覆蓋
方法的覆蓋也稱為方法的重寫
方法重寫注意類的訪問(wèn)規(guī)則的定義問(wèn)題:
子類覆蓋父類方法時(shí),訪問(wèn)規(guī)則只能比父類的限定要小?;蛘咭粯?。什么樣的方法不能被覆蓋:1-看不見的方法2-不能繼承的方法
3.1final修飾的方法不能被覆蓋。(因?yàn)閒inal的方法是特殊意義上的拒絕繼承)4)異常的分類: 1-運(yùn)行時(shí)異常(未捕獲異常):可以不使用try-catch來(lái)包含可能有問(wèn)題的代碼,出現(xiàn)這種異常系統(tǒng)自動(dòng)捕獲并提示
2-捕獲異常:如果你調(diào)用了捕獲異常發(fā)生的代碼,即使不會(huì)出現(xiàn)異常,也必須使用try-catch來(lái)調(diào)用這個(gè)有異常風(fēng)險(xiǎn)的代碼。
異常的再拋出:
在方法調(diào)用過(guò)程中,如果被調(diào)用的方法出現(xiàn)異常,它自己能處理就處理,如果處理不了會(huì)再拋出給調(diào)用我的方法。
再拋出分類: 1-顯性再拋出:在方法聲明的參數(shù)列表后以及方法體之間使用 throws 異常類 稱為顯性再拋出。
2-隱形再拋出:不使用 throws 異常類來(lái)進(jìn)行異常的再拋出。只有運(yùn)行時(shí)異常(未捕獲異常)才能進(jìn)行隱形拋出。
手動(dòng)拋異常:在代碼中使用 throw 異常對(duì)象
注意:覆蓋一個(gè)顯性拋出異常方法時(shí),子類中的覆蓋方法的顯性異常聲明可以是父類被覆蓋異常的子類或者其本身,不能使用比父類顯性拋出異常范圍還大的異常類。(子類可以不顯性再拋出,也就是默認(rèn)出現(xiàn)的異常我自己子類方法能處理)5)異常處理機(jī)制:
1-我們把可能發(fā)生異常的代碼,放到try{...}代碼段中,然后在其后使用catch(可能出現(xiàn)的異常類<定義一個(gè)>異常對(duì)象來(lái)捕獲可能出現(xiàn)的問(wèn)題){提示出現(xiàn)的問(wèn)題} 2-如果try代碼段有一句出現(xiàn)異常,并拋出。則try代碼段中其后的代碼不執(zhí)行。跳到catch去捕獲異常。
3-異常捕獲的catch代碼段,如果沒(méi)有捕獲到try代碼段拋出的異常對(duì)象,則整個(gè)程序崩潰了。
4-為了滿足一個(gè)代碼段的多種錯(cuò)誤處理,允許有多個(gè)catch代碼段。這些catch代碼段將“從上到下”的順序捕獲try代碼段拋出的異常對(duì)象,直到捕獲到為止。一個(gè)try代碼段后的多個(gè)catch代碼段,最多只能有一個(gè)catch被執(zhí)行
5-使用exception來(lái)作為catch的收尾工作,確保所有異常對(duì)象都能被捕獲到。6-異常父類的catch代碼段不能放到異常子類catch代碼段之前
7-異常處理的最后使用finally代碼段,是程序安全的最后一道屏障。無(wú)論出現(xiàn)什么情況finally代碼段都執(zhí)行。oracle數(shù)據(jù)庫(kù)中 1)觸發(fā)器的組成:
觸發(fā)事件:即在何種情況下觸發(fā)trigger;例如:insert, update, delete。
觸發(fā)時(shí)間:即該trigger 是在觸發(fā)事件發(fā)生之前(before)還是之后(after)觸發(fā),也就是觸發(fā)事件和該trigger 的操作順序。
觸發(fā)器本身:即該trigger 被觸發(fā)之后的目的和意圖,正是觸發(fā)器本身要做的事情。例如:pl/sql 塊。
觸發(fā)頻率:說(shuō)明觸發(fā)器內(nèi)定義的動(dòng)作被執(zhí)行的次數(shù)。即語(yǔ)句級(jí)(statement)觸發(fā)器和行級(jí)(row)觸發(fā)器。
語(yǔ)句級(jí)(statement)觸發(fā)器:是指當(dāng)某觸發(fā)事件發(fā)生時(shí),該觸發(fā)器只執(zhí)行一次;行級(jí)(row)觸發(fā)器:是指當(dāng)某觸發(fā)事件發(fā)生時(shí),對(duì)受到該操作影響的每一行數(shù)據(jù),觸發(fā)器都單獨(dú)執(zhí)行一次。
數(shù)據(jù)庫(kù)觸發(fā)器是存儲(chǔ)在數(shù)據(jù)庫(kù)中、根據(jù)發(fā)生的事件而執(zhí)行的一種存儲(chǔ)子程序。它與存儲(chǔ)過(guò)程不同的是,存儲(chǔ)過(guò)程通過(guò)其它程序來(lái)啟動(dòng)運(yùn)行或直接啟動(dòng)運(yùn)行,而觸發(fā)器是由一個(gè)事件來(lái)啟動(dòng)運(yùn)行。即觸發(fā)器是當(dāng)某個(gè)事件發(fā)生時(shí)自動(dòng)地隱式運(yùn)行。并且,觸發(fā)器不能接收參數(shù)。該事件可以是一個(gè)ddl操作,如對(duì)象的創(chuàng)建、修改或刪除;也可以是一個(gè)dml操作,如表或視圖上的一個(gè)insert、update或delete操作;也可以是系統(tǒng)事件,如數(shù)據(jù)庫(kù)啟動(dòng)和關(guān)閉、登錄和登出;還可以是一個(gè)用戶事件,如模式登錄和登出。2)游標(biāo)
游標(biāo)是構(gòu)件在pl/sql中,用來(lái)查詢數(shù)據(jù)庫(kù),獲取記錄集合或者結(jié)果集合的指針,它可以讓開發(fā)者一次訪問(wèn)一行結(jié)果集。oracle中游標(biāo)的分類:顯示游標(biāo)、隱式游標(biāo)。顯示游標(biāo)是早期定義的用于處理多行結(jié)果集的游標(biāo)。隱式游標(biāo)是由oracle定義的,它是和單行select?into語(yǔ)句,顯示游標(biāo)的使用:打開游標(biāo)、將結(jié)果集取到pl/sql記錄或者各個(gè)pl/sql變量中、關(guān)閉游標(biāo)
3)游標(biāo)的使用
定義了以后,在使用時(shí):open—fetch—close insert語(yǔ)句、update和delete語(yǔ)句關(guān)聯(lián)在一起使用的。4)參數(shù)化游標(biāo)
顯示游標(biāo)可以帶參數(shù),并能為特定的參數(shù)返回?cái)?shù)據(jù)集。
可以在游標(biāo)名稱后面,用括號(hào)括起參數(shù)的名稱和數(shù)據(jù)類型來(lái)定義游標(biāo)的參數(shù)。游標(biāo)變量就是一個(gè)pl/sql變量,可以在運(yùn)行時(shí)針對(duì)不同的查詢使用該變量。同一個(gè)變量能指向不同的工作區(qū)。
使用游標(biāo)變量的原因:
1、它能在存儲(chǔ)子程序之間傳遞結(jié)果集。
2、在運(yùn)行時(shí)一個(gè)游標(biāo)變能與多個(gè)查詢相關(guān)聯(lián)。5)游標(biāo)變量:
1、它能在存儲(chǔ)子程序之間傳遞結(jié)果集。
通過(guò)游標(biāo)變量,只要有游標(biāo)變量指向某工作區(qū),用戶就能夠通過(guò)該游標(biāo)變量取到該工作區(qū)的內(nèi)容。
2、在運(yùn)行時(shí)一個(gè)游標(biāo)變能與多個(gè)查詢相關(guān)聯(lián)。
使用游標(biāo)變量:
1、分配內(nèi)存
2、打開游標(biāo)變量
3、把結(jié)果集取到pl/sql記錄或者單獨(dú)的pl/sql變量中
4、關(guān)閉游標(biāo)變量
6)使用游標(biāo)表達(dá)式的原因:
1、可以避免聲明和使用多個(gè)游標(biāo)
2、避免了在sql select語(yǔ)句中使用復(fù)雜鏈接
3、可以把游標(biāo)表達(dá)式作為pl/sql游標(biāo)的一部分使用。在能使用動(dòng)態(tài)sql的地方,就能使用游標(biāo)表達(dá)式并把值取到ref cursor變量中。7)分析函數(shù)使用實(shí)例
問(wèn)題:給出各部門銷售代表工資最高的前3名。
該問(wèn)題具有二義性。
這是因?yàn)橛兄貜?fù)的值,即可能有4個(gè)人都賺同樣的工資,那該怎么辦? 可以給出3種合理的解釋:
1、給出銷售人員工資最高的前3名;也就是說(shuō),查找唯一的工資總數(shù)的集合,對(duì)他們進(jìn)行排序,得到最大的前3名
2、最多給出3個(gè)工資最高的人,如果碰巧有4個(gè)人工資最高,答案是沒(méi)有任何行記錄;如果有2個(gè)人賺最高的工資,有2個(gè)人賺同樣次高的工資,答案是僅有2行記錄(2個(gè)最高的)。
3、對(duì)銷售人員按照工資從高到低排列,給出前3行記錄,如果一個(gè)部門少于3個(gè)人,則將返回少于3個(gè)記錄。
通過(guò)學(xué)習(xí)了java和oracle做一些簡(jiǎn)單程序,如銀行存取款系統(tǒng)、掃雷、畫板等程序。
二 實(shí)習(xí)心得
通過(guò)這一個(gè)多月的實(shí)習(xí),給我的觸動(dòng)很大。在信息時(shí)代,學(xué)習(xí)是不斷地汲取新信息。作為一名即將畢業(yè)的大學(xué)生更應(yīng)該把學(xué)習(xí)作為保持今后工作積極性的重要途徑。在今后的學(xué)習(xí)、工作和生活中,我將繼續(xù)學(xué)習(xí),深入實(shí)踐,不斷提升自我。
通過(guò)實(shí)習(xí),我初步學(xué)習(xí)了java se,oracle數(shù)據(jù)庫(kù)的有關(guān)知識(shí),學(xué)習(xí)了如何用java連接數(shù)據(jù)庫(kù),對(duì)于一些簡(jiǎn)單的小問(wèn)題,能夠動(dòng)手排除。實(shí)習(xí)是個(gè)人能力的鍛煉。我個(gè)人認(rèn)為,這次實(shí)習(xí)對(duì)于我是非常有意義的,對(duì)我個(gè)人的影響也比較大。通過(guò)這次實(shí)習(xí),我得到了一次全面系統(tǒng)的鍛煉機(jī)會(huì),增長(zhǎng)了不少知識(shí),學(xué)到了許多知識(shí)和技能?!霸诖髮W(xué)里學(xué)的不是知識(shí),而是一種叫做自學(xué)能力”參加實(shí)習(xí)后才真正體會(huì)到這句話的含義。在這個(gè)信息化的時(shí)代,我們必須在實(shí)際項(xiàng)目勤于動(dòng)手慢慢琢磨,不斷學(xué)習(xí)不斷積累,遇到不懂的地方,自己先想辦法解決,實(shí)際不行可以虛心請(qǐng)教他認(rèn),而沒(méi)有自學(xué)能力的人遲早會(huì)被社會(huì)和企業(yè)所淘汰。
參考文獻(xiàn)
[1] 計(jì)算機(jī)叢書編委會(huì).frontpage 2000 網(wǎng)頁(yè)制作實(shí)用教程[m].北京:希望電子出版社,2002.[2] 李勁.asp數(shù)據(jù)庫(kù)程序設(shè)計(jì)[j].上海:計(jì)算機(jī)研究,2001,(4):14-16.[3] liu guangyuan,yu juegang, a fast learning algorithm via a hybrid approach[j].journal of uest of china, vol.27, no.3, jun.2000.[4] /(臺(tái)州學(xué)院計(jì)算機(jī)基礎(chǔ)教學(xué)網(wǎng))[5] java面向?qū)ο缶幊袒A(chǔ)教程 作 者:信必優(yōu)技術(shù)學(xué)院研發(fā)部 出版社: 清華大學(xué)出版社 出版時(shí)間: 2009-7-1 isbn: 9787302203193 [6] java編程思想(第4版)作者:(美)??藸?著,陳昊鵬 譯 isbn編號(hào): 9787111213826 出版社: 機(jī)械工業(yè)出版社 [7] java從入門到精通(第2版)isbn編號(hào): 9787302227465 出版時(shí)間: 2010-7-1 出版社: 清華大學(xué)出版社 作者: 李鐘尉,周小彤,陳丹丹 等編著 副書名: 軟件開發(fā)視頻大講堂
[8]java ee實(shí)用教程 isbn編號(hào): 9787121097270 出版時(shí)間: 2009-11-1 出版社: 電子工業(yè)出版社 作者: 鄭阿奇 主編 [9] 產(chǎn)品名稱:java 2核心技術(shù) 卷ⅰ isbn編號(hào): 9787111125433 出版社: 機(jī)械工業(yè)出版社 作者: [美]霍斯特曼等 著,程峰等 譯
第三篇:java學(xué)習(xí)
.如何學(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ū)ο螅且环N方法學(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文檔(參考文獻(xiàn)4.4)就是這樣的文檔,它可以說(shuō)是程序員與程序員交流的文檔?;続PI指的是實(shí)現(xiàn)了一些底層功能的類,通用性較強(qiáng)的API,如字符串處理/輸入輸出等等。我們又把它成為類庫(kù)。熟悉API的方法一是多查Java DOC文檔(參考文獻(xiàn)4.4),二是使用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ò),只是筆者覺(jué)得這些地方特別要注意才對(duì)它們進(jìn)行匯總,不要嫌我婆婆媽媽啊。
3.2.1勤查API文檔當(dāng)程序員編寫好某些類,覺(jué)得很有成就感,想把它貢獻(xiàn)給各位苦難的同行。這時(shí)候你要使用“Javadoc”工具(包含在JDK中)生成標(biāo)準(zhǔn)的Java DOC文檔,供同行使用。J2SE/J2EE/J2ME的DOC文檔是程序員與程序員交流的工具,幾乎人手一份,除了菜鳥之外。J2SE DOC文檔官方下載地址:http://Java.sun.com/j2se/1.5.0/download.jsp,你可以到google搜索CHM版本下載。也可以在線查看: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),有的話就不必勞神費(fèi)心了直接用就可以了,找不到的時(shí)候才考慮自己實(shí)現(xiàn)。使用步驟一般如下: ●找特定的包,包一般根據(jù)功能組織?!裾倚枰褂妙?,類命名規(guī)范的話我們由類的名字可猜出一二?!襁x擇構(gòu)造器,大多數(shù)使用類的方式是創(chuàng)建對(duì)象?!襁x擇你需要的方法。
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ī)范,多到http://004km.cn下載JSRXXX規(guī)范,多讀規(guī)范,這是最權(quán)威準(zhǔn)確最新的教材。第二層含義是編程規(guī)范,如果你使用了大量的獨(dú)特算法,富有個(gè)性的變量及方法的命名方式;同時(shí),沒(méi)給程序作注釋,以顯示你的編程功底是多么的深厚。這樣的代碼別人看起來(lái)像天書,要理解談何容易,更不用說(shuō)維護(hù)了,必然會(huì)被無(wú)情地掃入垃圾堆。Java編碼規(guī)范到此查看或下載http://Java.sun.com/docs/codeconv/,中文的也有,啊,還要問(wèn)我在哪,請(qǐng)參考3.2.2節(jié)。
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神殿之外的朋友有所幫助的話,筆者也欣慰了。哈哈,怎么聽起來(lái)老氣橫秋呀?沒(méi)辦法,在電腦的長(zhǎng)期輻射之下,都快變成小老頭了。最后奉勸各位程序員尤其是MM程序員,完成工作后趕快遠(yuǎn)離電腦,據(jù)《胡播亂報(bào)》報(bào)道,電腦輻射會(huì)在白皙的皮膚上面點(diǎn)綴一些小黑點(diǎn),看起來(lái)鮮艷無(wú)比……
第四篇:JAVA學(xué)習(xí)
買本《java瘋狂講義》 或者 在網(wǎng)上下載下來(lái)看看主要看java語(yǔ)法部分和面向?qū)ο缶幊滩糠诌@些要速度過(guò) 接下來(lái)開始寫一些小例子 從例子里面學(xué)習(xí)會(huì)更快例子差不多了就開始web方面的涉獵,先學(xué)struts->jsp->servlet->hibernate->spring學(xué)習(xí)javascript
第五篇:如何深入學(xué)習(xí)java
在開發(fā)領(lǐng)域的技術(shù)人員,只有不斷地充電提高才能夠讓自己始終處于不敗之地。技術(shù)日新月異,推陳出新,讓技術(shù)人員目不暇接。我們都知道,java技術(shù)是目前最流行的編程語(yǔ)言,java入門很難簡(jiǎn)單,可是要想成為高手,拿到更高的工資,還需要深入學(xué)習(xí),那么如何深入學(xué)習(xí)java?
Oracle的Java EE 6提供了三大新技術(shù)和更多豐富組件和強(qiáng)勁的特色功能,很先進(jìn)、實(shí)用,并且容易掌握,絕對(duì)值得java程序員等技術(shù)人員深入學(xué)習(xí),全面提升自身的核心競(jìng)爭(zhēng)力。
Java EE 6的第一大新技術(shù)就是支持JAX-RS(JSR 311),JAX-RS是RESTful Web Services Java API的簡(jiǎn)寫,Java EE 6包含了它的最新1.1版本,它可以讓程序員迅速構(gòu)建遵循REST(Representational State Transfer,表象化狀態(tài)轉(zhuǎn)變)風(fēng)格軟件架構(gòu)的輕量級(jí)Web服務(wù),它對(duì)于每個(gè)資源都使用全局引用標(biāo)識(shí)符URI,并擁有直接通過(guò)HTTP傳輸數(shù)據(jù)的能力,可以使用標(biāo)準(zhǔn)的固定動(dòng)詞—GET,PUT,POST和DELETE等來(lái)操作這些資源。同時(shí),JAX-RS為在Java中構(gòu)建RESTful Web服務(wù)提供了標(biāo)準(zhǔn)化API,API還提供了注解、相關(guān)的類和接口,這使得在Java中創(chuàng)建RESTful Web服務(wù)變得簡(jiǎn)單。
Java EE 6的第二大新技術(shù)是它可以支持面向Java EE平臺(tái)的上下文和依賴性注入-CDI(JSR 299),CDI是Context and Dependency Injection的簡(jiǎn)寫,它是Java EE平臺(tái)的Web層和企業(yè)層之間的一座橋梁。通過(guò)CDI,不僅可以讓企業(yè)層通過(guò)諸如EJB和JPA等技術(shù),對(duì)事務(wù)性資源提供強(qiáng)有力的支持。同時(shí),通過(guò)CDI,使得Web層也能夠支持事務(wù),這樣在Web應(yīng)用程序中訪問(wèn)事務(wù)資源就更容易了。
支持Bean驗(yàn)證(JSR 303)是Java EE 6的第三大新技術(shù),Bean驗(yàn)證提供了一個(gè)遵循JavaBean規(guī)范編寫的Java類,它提供了標(biāo)準(zhǔn)驗(yàn)證框架,并可在應(yīng)用程序的所有層之間共享,簡(jiǎn)化了驗(yàn)證,減少重復(fù)、錯(cuò)誤和凌亂。
以上三種技術(shù),就是深入學(xué)習(xí)java必備的,當(dāng)然,強(qiáng)大的java不只這些,需要學(xué)習(xí)的還有很多,同時(shí)也需要連續(xù)的練習(xí),這樣才能成為真正的java高手。如何深入學(xué)習(xí)java
長(zhǎng)沙java培訓(xùn)http:///