九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

第一章 java基礎(chǔ)

  • 資源ID:101598331       資源大小:419.50KB        全文頁數(shù):23頁
  • 資源格式: DOC        下載積分:10積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要10積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號:
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

第一章 java基礎(chǔ)

第一章:教案名稱:教案大小:教案類型:WORD文檔星級評定:教案簡介:java語言的產(chǎn)生起源于Sun Microsystems公司為消費(fèi)電子產(chǎn)品上應(yīng)用程序的開發(fā)尋找一門編程語言的過程中,而隨著互聯(lián)網(wǎng)時(shí)代的到來,原有的Oak軟件就順理成章的改造成java語言推向了市場,其跨平臺、面相對象、安全等特點(diǎn)使其得到廣泛的應(yīng)用。通過在不同的軟硬件上實(shí)現(xiàn)的java虛擬機(jī),java的字節(jié)碼文件就可以跨平臺的進(jìn)行運(yùn)行,無用內(nèi)存自動(dòng)回收器也給程序員帶來了極大的方便。java程序以兩種方式進(jìn)行運(yùn)行,一種是通過java虛擬機(jī)進(jìn)行直接運(yùn)行的java application,另一種是通過瀏覽器進(jìn)行運(yùn)行的java applet,但是無論是何種方式,java都是一門純粹的面向?qū)ο蟮木幊陶Z言。面向?qū)ο缶幊痰乃悸氛J(rèn)為程序都是對象的組合,因此要克服面向過程編程的思路,直接按照對象和類的思想去組織程序,面向?qū)ο笏哂械姆庋b性、繼承性、多態(tài)性等特點(diǎn)使其具有強(qiáng)大的生命力。Sun公司為全世界java開發(fā)人員提供了一套免費(fèi)的軟件開發(fā)包Java2 SDK,也稱為JDK,它不僅是java的開發(fā)平臺,還是java的運(yùn)行平臺。java源程序存放在.java文件中,可以通過任意一個(gè)文本編輯器編輯產(chǎn)生,源程序經(jīng)過"javac"命令編譯過后,就生成了相應(yīng)的.class文件,而用"java"命令就可以運(yùn)行.class文件。作為面向?qū)ο缶幊倘藛T來說,大體可以分為兩種:類創(chuàng)建者和應(yīng)用程序員,應(yīng)用程序員是類的使用者。所以對程序的可讀性和API幫助文檔就有要求,java語言本身有一套約定成俗的編程規(guī)范,同時(shí)程序員首先要學(xué)會(huì)閱讀系統(tǒng)API幫助文檔,還要學(xué)會(huì)生成自己編寫的程序的API幫助文檔。下載一【課前思考】1. 一門新的語言的產(chǎn)生是否需要借鑒以前的編程語言?2. 在java語言出現(xiàn)之前是否存在其它跨平臺的語言?3. 有哪些編程語言是面向?qū)ο蟮??而哪些編程語言是面向過程的?從編程思路上存在著哪些本質(zhì)差別?C語言是面向?qū)ο蟮倪€是面向過程的?4. 一段優(yōu)秀的程序代碼是否應(yīng)該是可讀性極強(qiáng)的?程序員之間是否應(yīng)該遵循相同的編程規(guī)范?5. 一個(gè)程序員編好的代碼如果需要讓別的程序員使用,如何提供該代碼的使用說明?【學(xué)習(xí)目標(biāo)】了解java語言產(chǎn)生的歷史和工作原理,掌握java語言作為一門面向?qū)ο缶幊陶Z言的基本編程思路,初步接觸java程序的兩種方式:java application和java applet,掌握java程序的結(jié)構(gòu)、編程規(guī)范,學(xué)習(xí)閱讀java幫助文檔,并安裝java開發(fā)環(huán)境和幫助文檔,最后要學(xué)會(huì)編寫小的java程序并生成相應(yīng)的幫助文檔。【學(xué)習(xí)指南】跳過面向過程的編程思路,直接進(jìn)入到面向?qū)ο蟮木幊谭绞?。【難 重 點(diǎn)】 java虛擬機(jī)無用內(nèi)存自動(dòng)回收器java語言的特點(diǎn)面向?qū)ο蟮木幊趟悸穓ava編程規(guī)范java類庫幫助文檔的瀏覽和生成【知 識 點(diǎn)】1.1 java語言的發(fā)展史1.1.1 java語言在互聯(lián)網(wǎng)時(shí)代獲得巨大成功1.1.2 java語言的產(chǎn)生1.2 java的工作原理1.2.1 java虛擬機(jī)1.2.2 無用內(nèi)存自動(dòng)回收機(jī)制1.2.3 代碼安全性檢查機(jī)制1.2.4 java語言的特點(diǎn)1.2.5 java平臺不斷擴(kuò)展的計(jì)算平臺1.3 一切都是對象1.3.1 面向過程1.3.2 面向?qū)ο?.4 構(gòu)建java程序1.4.1 第一個(gè)java application1.4.2 java程序的編輯1.4.3 java程序的編譯1.4.4 java application的執(zhí)行1.4.5 第一個(gè)java applet1.4.6 java applet的執(zhí)行1.5 java程序規(guī)范1.5.1 java源程序結(jié)構(gòu)1.5.2 java編程規(guī)范1.5.3 java幫助文檔1.5.4 java注釋1.6 建立java開發(fā)環(huán)境1.6.1 安裝java開發(fā)包JDK1.6.2 安裝java幫助文檔1.6.3 配置類路徑1.1 java語言的發(fā)展史1.1.java語言在互聯(lián)網(wǎng)時(shí)代獲得巨大成功大家想一想,在PC下用windows編寫的程序能夠不做修改就直接拿到UNIX系統(tǒng)上運(yùn)行嗎?顯然是不可以的,因?yàn)槌绦虻膱?zhí)行最終必須轉(zhuǎn)換成為計(jì)算機(jī)硬件的機(jī)器指令來執(zhí)行,專門為某種計(jì)算機(jī)硬件和操作系統(tǒng)編寫的程序是不能夠直接放到另外的計(jì)算機(jī)硬件上執(zhí)行的,至少要做移植工作。要想讓程序能夠在不同的計(jì)算機(jī)上能夠運(yùn)行,就要求程序設(shè)計(jì)語言是能夠跨越各種軟件和硬件平臺的,而java滿足了這一需求。1995年,美國Sun Microsystems公司正式向IT業(yè)界推出了java語言,該語言具有安全、跨平臺、面向?qū)ο?、簡單、適用于網(wǎng)絡(luò)等顯著特點(diǎn),當(dāng)時(shí)以web為主要形式的互聯(lián)網(wǎng)正在迅猛發(fā)展,java語言的出現(xiàn)迅速引起所有程序員和軟件公司的極大關(guān)注,程序員們紛紛嘗試用java語言編寫網(wǎng)絡(luò)應(yīng)用程序,并利用網(wǎng)絡(luò)把程序發(fā)布到世界各地進(jìn)行運(yùn)行。包括IBM、Oracle、微軟、Netscape、Apple、SGI等大公司紛紛與Sun Microsystems公司簽訂合同,授權(quán)使用java平臺技術(shù)。微軟公司總裁比爾蓋茨先生在經(jīng)過研究后認(rèn)為"java語言是長時(shí)間以來最卓越的程序設(shè)計(jì)語言"。目前,java語言已經(jīng)成為最流行的網(wǎng)絡(luò)編程語言,截止到2001年中,全世界大約有310萬java程序員,許多大學(xué)紛紛開設(shè)java課程,java正逐步成為世界上程序員最多的編程語言。在經(jīng)歷了以大型機(jī)為代表的集中計(jì)算模式和以PC機(jī)為代表的分散計(jì)算模式之后,互聯(lián)網(wǎng)的出現(xiàn)使得計(jì)算模式進(jìn)入了網(wǎng)絡(luò)計(jì)算時(shí)代。網(wǎng)絡(luò)計(jì)算模式的一個(gè)特點(diǎn)是計(jì)算機(jī)是異構(gòu)的,即計(jì)算機(jī)的類型和操作系統(tǒng)是不一樣的,例如SUN工作站的硬件是SPARC體系,軟件是UNIX中的Solaris操作系統(tǒng),而PC機(jī)的硬件是INTEL體系,操作系統(tǒng)是windows或者是Linux,因此相應(yīng)的編程語言基本上只是適用于單機(jī)系統(tǒng),例如COBOL、FORTRAN、C、C等等;網(wǎng)絡(luò)計(jì)算模式的另一個(gè)特點(diǎn)是代碼可以通過網(wǎng)絡(luò)在各種計(jì)算機(jī)上進(jìn)行遷移,這就迫切需要一種跨平臺的編程語言,使得用它編寫的程序能夠在網(wǎng)絡(luò)中的各種計(jì)算機(jī)上能夠正常運(yùn)行,java就是在這種需求下應(yīng)運(yùn)而生的。正是因?yàn)閖ava語言符合了互聯(lián)網(wǎng)時(shí)代的發(fā)展要求,才使它獲得了巨大的成功。1.1.2 java語言的產(chǎn)生俗話說:"有心栽花花不成,無心插柳柳成蔭"。Sun公司絕沒想到本想用于消費(fèi)電子產(chǎn)品開發(fā)的編程語言卻率先在網(wǎng)絡(luò)中得到了廣泛應(yīng)用,但是也可以說是"東方不亮西方亮",正是因?yàn)閖ava語言在設(shè)計(jì)目標(biāo)上的正確性使得java語言"是金字總會(huì)發(fā)光的"。C語言是面向過程的語言,也是使用率非常高的語言;而面向?qū)ο蟮乃枷胍氲骄幊陶Z言之后,C語言就被改造成為面向?qū)ο蟮腃語言,得到了廣泛的應(yīng)用。但是C語言必須兼容C語言,因此C語言是面向過程和面向?qū)ο蠡旌系恼Z言。java語言產(chǎn)生于C語言之后,是完全的面向?qū)ο蟮木幊陶Z言,充分吸取了C語言的優(yōu)點(diǎn),采用了程序員所熟悉的C和C語言的許多語法,同時(shí)又去掉了C語言中指針、內(nèi)存申請和釋放等影響程序健壯性的部分,可以說java語言是站在C語言這個(gè)"巨人的肩膀上"前進(jìn)的。java語言的一個(gè)目標(biāo)是跨平臺,因此采用了解釋執(zhí)行而不是編譯執(zhí)行的運(yùn)行環(huán)境,在執(zhí)行過程中根據(jù)所在的不同的硬件平臺把程序解釋為當(dāng)前的機(jī)器碼,實(shí)現(xiàn)跨平臺運(yùn)行。而動(dòng)態(tài)下載程序代碼的機(jī)制完全是為了適應(yīng)網(wǎng)絡(luò)計(jì)算的特點(diǎn),程序可以根據(jù)需要把代碼實(shí)時(shí)的從服務(wù)器中下載過來執(zhí)行,在此之前還沒有任何一種語言能夠支持這一點(diǎn)。java是印尼的一個(gè)小島,盛產(chǎn)咖啡,而程序員往往喜歡喝咖啡,因此取名為java語言??磥?,目前java這杯咖啡已經(jīng)飄香在世界各地。任何事物的產(chǎn)生既有必然的原因也有偶然的因素,java語言的出現(xiàn)也驗(yàn)證了這一點(diǎn)。1991年,美國Sun Microsystems公司的某個(gè)研究小組為了能夠在消費(fèi)電子產(chǎn)品上開發(fā)應(yīng)用程序,積極尋找合適的編程語言。消費(fèi)電子產(chǎn)品種類繁多,包括PDA、機(jī)頂盒、手機(jī)等等,即使是同一類消費(fèi)電子產(chǎn)品所采用的處理芯片和操作系統(tǒng)也不相同,也存在著跨平臺的問題。當(dāng)時(shí)最流行的編程語言是C和C語言,Sun公司的研究人員就考慮是否可以采用C語言來編寫消費(fèi)電子產(chǎn)品的應(yīng)用程序,但是研究表明,對于消費(fèi)電子產(chǎn)品而言C語言過于復(fù)雜和龐大,并不適用,安全性也并不令人滿意。于是,Bill Joy先生領(lǐng)導(dǎo)的研究小組就著手設(shè)計(jì)和開發(fā)出一種語言,稱之為Oak。該語言采用了許多C語言的語法,提高了安全性,并且是面向?qū)ο蟮恼Z言,但是Oak語言在商業(yè)上并未獲得成功。時(shí)間轉(zhuǎn)到了1995年,互聯(lián)網(wǎng)在世界上蓬勃發(fā)展,Sun公司發(fā)現(xiàn)Oak語言所具有的跨平臺、面向?qū)ο蟆踩愿叩忍攸c(diǎn)非常符合互聯(lián)網(wǎng)的需要,于是改進(jìn)了該語言的設(shè)計(jì),要達(dá)到如下幾個(gè)目標(biāo): 創(chuàng)建一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,而不是面向過程的語言; 提供一個(gè)解釋執(zhí)行的程序運(yùn)行環(huán)境,是程序代碼獨(dú)立于平臺; 吸收C和C的優(yōu)點(diǎn),使程序員容易掌握; 去掉C和C中影響程序健壯性的部分,使程序更安全,例如指針、內(nèi)存申請和釋放; 實(shí)現(xiàn)多線程,使得程序能夠同時(shí)執(zhí)行多個(gè)任務(wù); 提供動(dòng)態(tài)下載程序代碼的機(jī)制; 提供代碼校驗(yàn)機(jī)制以保證安全性;最終,Sun公司給該語言取名為java語言,造就了一代成功的編程語言。1.2 java的工作原理1.2.1 java虛擬機(jī)java虛擬機(jī)是軟件模擬的計(jì)算機(jī),可以在任何處理器上(無論是在計(jì)算機(jī)中還是在其它電子設(shè)備中)安全并且兼容的執(zhí)行保存在.class文件中的字節(jié)碼。java虛擬機(jī)的"機(jī)器碼"保存在.class文件中,有時(shí)也可以稱之為字節(jié)碼文件。java程序的跨平臺主要是指字節(jié)碼文件可以在任何具有java虛擬機(jī)的計(jì)算機(jī)或者電子設(shè)備上運(yùn)行,java虛擬機(jī)中的java解釋器負(fù)責(zé)將字節(jié)碼文件解釋成為特定的機(jī)器碼進(jìn)行運(yùn)行。java源程序需要通過編譯器編譯成為.class文件(字節(jié)碼文件),java程序的編譯和執(zhí)行過程如動(dòng)畫所示。但是,java虛擬機(jī)的建立需要針對不同的軟硬件平臺做專門的實(shí)現(xiàn),既要考慮處理器的型號,也要考慮操作系統(tǒng)的種類。如下圖所示,目前在SPARC結(jié)構(gòu)、X86結(jié)構(gòu)、MIPS和PPC等嵌入式處理芯片上、在UNIX、Linux、windows和部分實(shí)時(shí)操作系統(tǒng)上都有java虛擬機(jī)的實(shí)現(xiàn)。1.2.2 無用內(nèi)存自動(dòng)回收機(jī)制在程序的執(zhí)行過程中,部分內(nèi)存在使用過后就處于廢棄狀態(tài),如果不及時(shí)進(jìn)行無用內(nèi)存的回收,就會(huì)導(dǎo)致內(nèi)存泄漏,進(jìn)而導(dǎo)致系統(tǒng)崩潰。在C語言中是由程序員進(jìn)行內(nèi)存回收的,程序員需要在編寫程序的時(shí)候把不再使用的對象內(nèi)存釋放掉;但是這種人為的管理內(nèi)存釋放的方法卻往往由于程序員的疏忽而致使內(nèi)存無法回收,同時(shí)也增加了程序員的工作量。而在java運(yùn)行環(huán)境中,始終存在著一個(gè)系統(tǒng)級的線程,專門跟蹤內(nèi)存的使用情況,定期檢測出不再使用的內(nèi)存,并進(jìn)行自動(dòng)回收,避免了內(nèi)存的泄露,也減輕了程序員的工作量。1.2.3 代碼安全性檢查機(jī)制安全和方便總是相對矛盾的。java編程語言的出現(xiàn)使得客戶端機(jī)器可以方便的從網(wǎng)絡(luò)上下載java程序到本機(jī)上運(yùn)行,但是如何保證該java程序不攜帶病毒或者不懷有其它險(xiǎn)惡目的呢?如果java語言不能保證執(zhí)行的安全性,那么它就不可能存活到今天。雖然有時(shí)候少數(shù)程序員會(huì)抱怨說applet連文件系統(tǒng)也不能訪問,但是正是各種安全措施的實(shí)行才確保了java語言的生存。字節(jié)碼的執(zhí)行需要經(jīng)過三個(gè)步驟,首先由類裝載器(class loader)負(fù)責(zé)把類文件(.class文件)加載到j(luò)ava虛擬機(jī)中,在此過程需要檢驗(yàn)該類文件是否符合類文件規(guī)范;其次字節(jié)碼校驗(yàn)器(bytecode verifier)檢查該類文件的代碼中是否存在著某些非法操作,例如applet程序中寫本機(jī)文件系統(tǒng)的操作;如果字節(jié)碼校驗(yàn)器檢驗(yàn)通過,由java解釋器負(fù)責(zé)把該類文件解釋成為機(jī)器碼進(jìn)行執(zhí)行。java虛擬機(jī)采用的是"沙箱"運(yùn)行模式,即把java程序的代碼和數(shù)據(jù)都限制在一定內(nèi)存空間里執(zhí)行,不允許程序訪問該內(nèi)存空間外的內(nèi)存,如果是applet程序,還不允許訪問客戶端機(jī)器的文件系統(tǒng)。1.2.4 Java語言的特點(diǎn)1 簡單、面向?qū)ο蠛蜑槿怂煜ava的簡單首先體現(xiàn)在精簡的系統(tǒng)上,力圖用最小的系統(tǒng)實(shí)現(xiàn)足夠多的功能;對硬件的要求不高,在小型的計(jì)算機(jī)上便可以良好的運(yùn)行。和所有的新一代的程序設(shè)計(jì)語言一樣,java也采用了面向?qū)ο蠹夹g(shù)并更加徹底,所有的java程序和applet程序均是對象,封裝性實(shí)現(xiàn)了模塊化和信息隱藏,繼承性實(shí)現(xiàn)了代碼的復(fù)用,用戶可以建立自己的類庫。而且java采用的是相對簡單的面向?qū)ο蠹夹g(shù),去掉了運(yùn)算符重載、多繼承的復(fù)雜概念,而采用了單一繼承、類強(qiáng)制轉(zhuǎn)換、多線程、引用(非指針)等方式。無用內(nèi)存自動(dòng)回收機(jī)制也使得程序員不必費(fèi)心管理內(nèi)存,是程序設(shè)計(jì)更加簡單,同時(shí)大大減少了出錯(cuò)的可能。java語言采用了C語言中的大部分語法,熟悉C語言的程序員會(huì)發(fā)現(xiàn)java語言在語法上與C語言極其相似。2 魯棒并且安全java語言在編譯及運(yùn)行程序時(shí),都要進(jìn)行嚴(yán)格的檢查。作為一種強(qiáng)制類型語言,java在編譯和連接時(shí)都進(jìn)行大量的類型檢查,防止不匹配問題的發(fā)生。如果引用一個(gè)非法類型、或執(zhí)行一個(gè)非法類型操作,java將在解釋時(shí)指出該錯(cuò)誤。在java程序中不能采用地址計(jì)算的方法通過指針訪問內(nèi)存單元,大大減少了錯(cuò)誤發(fā)生的可能性;而且java的數(shù)組并非用指針實(shí)現(xiàn),這樣就可以在檢查中避免數(shù)組越界的發(fā)生。無用內(nèi)存自動(dòng)回收機(jī)制也增加了java的魯棒性。作為網(wǎng)絡(luò)語言,java必須提供足夠的安全保障,并且要防止病毒的侵襲。java在運(yùn)行應(yīng)用程序時(shí),嚴(yán)格檢查其訪問數(shù)據(jù)的權(quán)限,比如不允許網(wǎng)絡(luò)上的應(yīng)用程序修改本地的數(shù)據(jù)。下載到用戶計(jì)算機(jī)中的字節(jié)代碼在其被執(zhí)行前要經(jīng)過一個(gè)核實(shí)工具,一旦字節(jié)代碼被核實(shí),便由java解釋器來執(zhí)行,該解釋器通過阻止對內(nèi)存的直接訪問來進(jìn)一步提高java的安全性。同時(shí)java極高的魯棒性也增強(qiáng)了java的安全性。3 結(jié)構(gòu)中立并且可以移植網(wǎng)絡(luò)上充滿了各種不同類型的機(jī)器和操作系統(tǒng),為使java程序能在網(wǎng)絡(luò)的任何地方運(yùn)行,java編譯器編譯生成了與體系結(jié)構(gòu)無關(guān)的字節(jié)碼結(jié)構(gòu)文件格式。任何種類的計(jì)算機(jī),只有在其處理器和操作系統(tǒng)上有java運(yùn)行時(shí)環(huán)境,字節(jié)碼文件就可以在該計(jì)算機(jī)上運(yùn)行。即使是在單一系統(tǒng)的計(jì)算機(jī)上,結(jié)構(gòu)中立也有非常大的作用。隨著處理器結(jié)構(gòu)的不斷發(fā)展變化,程序員不得不編寫各種版本的程序以在不同的處理器上運(yùn)行,這使得開發(fā)出能夠在所有平臺上工作的軟件集合是不可能的。而使用java將使同一版本的應(yīng)用程序可以運(yùn)行在所有的平臺上。體系結(jié)構(gòu)的中立也使得java系統(tǒng)具有可移植性。java運(yùn)行時(shí)系統(tǒng)可以移植到不同的處理器和操作系統(tǒng)上,java的編譯器是由java語言實(shí)現(xiàn)的,解釋器是由java語言和標(biāo)準(zhǔn)C語言實(shí)現(xiàn)的,因此可以較為方便的進(jìn)行移植工作。4 高性能雖然java是解釋執(zhí)行的,但它仍然具有非常高的性能,在一些特定的CPU上,java字節(jié)碼可以快速的轉(zhuǎn)換成為機(jī)器碼進(jìn)行執(zhí)行。而且java字節(jié)碼格式的設(shè)計(jì)就是針對機(jī)器碼的轉(zhuǎn)換,實(shí)際轉(zhuǎn)換時(shí)相當(dāng)簡便,自動(dòng)的寄存器分配與編譯器對字節(jié)碼的一些優(yōu)化可使之生成高質(zhì)量的代碼。隨著java虛擬機(jī)的改進(jìn)和"即時(shí)編譯"(just in time)技術(shù)的出現(xiàn)使得java的執(zhí)行速度有了更大的提高。5 解釋執(zhí)行、多線程并且是動(dòng)態(tài)的為易于實(shí)現(xiàn)跨平臺性,java設(shè)計(jì)成為解釋執(zhí)行,字節(jié)碼本身包含了許多編譯時(shí)生成的信息,使連接過程更加簡單。而多線程使應(yīng)用程序可以同時(shí)進(jìn)行不同的操作,處理不同的事件。在多線程機(jī)制中,不同的線程處理不同的任務(wù),互不干涉,不會(huì)由于某一任務(wù)處于等待狀態(tài)而影響了其它任務(wù)的執(zhí)行,這樣就可以容易的實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)交互操作。java在執(zhí)行過程中,可以動(dòng)態(tài)的加載各種類庫,這一特點(diǎn)使之非常適合于網(wǎng)絡(luò)運(yùn)行,同時(shí)也非常有利于軟件的開發(fā),即使是更新類庫也不必重新編譯使用這一類庫的應(yīng)用程序。如果你了解C語言和C+語言,可以參考下列java與C/C+語言的比較,如果不了解C語言和C+語言,可以忽略本部分知識。a 全局變量java程序不能定義程序的全局變量,而類中的公共、靜態(tài)變量就相當(dāng)于這個(gè)類的全局變量。這樣就使全局變量封裝在類中,保證了安全性,而在C/C+語言中,由于不加封裝的全局變量往往會(huì)由于使用不當(dāng)而造成系統(tǒng)的崩潰。b 條件轉(zhuǎn)移指令C/C+語言中用goto語句實(shí)現(xiàn)無條件跳轉(zhuǎn),而java語言沒有g(shù)oto語言,通過例外處理語句try、catch、finally來取代之,提高了程序的可讀性,也增強(qiáng)了程序的魯棒性。c 指針指針是C/C+語言中最靈活,但也是最容易出錯(cuò)的數(shù)據(jù)類型。用指針進(jìn)行內(nèi)存操作往往造成不可預(yù)知的錯(cuò)誤,而且,通過指針對內(nèi)存地址進(jìn)行顯示類型轉(zhuǎn)換后,可以類的私有成員,破壞了安全性。在java中,程序員不能進(jìn)行任何指針操作,同時(shí)java中的數(shù)組是通過類來實(shí)現(xiàn)的,很好的解決了數(shù)組越界這一C/C+語言中不做檢查的缺點(diǎn)。d 內(nèi)存管理在C語言中,程序員使用庫函數(shù)malloc()和free()來分配和釋放內(nèi)存,C+語言中則是運(yùn)算符new和delete。再次釋放已經(jīng)釋放的內(nèi)存塊或者釋放未被分配的內(nèi)存塊,會(huì)造成系統(tǒng)的崩潰,而忘記釋放不再使用的內(nèi)存塊也會(huì)逐漸耗盡系統(tǒng)資源。在java中,所有的數(shù)據(jù)結(jié)構(gòu)都是對象,通過運(yùn)算符new分配內(nèi)存并得到對象的使用權(quán)。無用內(nèi)存回收機(jī)制保證了系統(tǒng)資源的完整,避免了內(nèi)存管理不周而引起的系統(tǒng)崩潰。e 數(shù)據(jù)類型的一致性在C/C+語言中,不同的平臺上,編譯器對簡單的數(shù)據(jù)類型如int、float等分別分配不同的字節(jié)數(shù)。例如:int在IBM PC上為16位,在VAX-11上就為32位,導(dǎo)致了代碼數(shù)據(jù)的不可移植。在java中,對數(shù)據(jù)類型的位數(shù)分配總是固定的,而不管是在任何的計(jì)算機(jī)平臺上。因此就保證了java數(shù)據(jù)的平臺無關(guān)性和可移植性。f 類型轉(zhuǎn)換在C/C+語言中,可以通過指針進(jìn)行任意的類型轉(zhuǎn)換,不安全因素大大增加。而在java語言中系統(tǒng)要對對象的處理進(jìn)行嚴(yán)格的相容性檢查,防止不安全的轉(zhuǎn)換。g 頭文件在C/C+語言中使用頭文件聲明類的原型和全局變量及庫函數(shù)等,在大的系統(tǒng)中,維護(hù)這些頭文件是非常困難的。java不支持頭文件,類成員的類型和訪問權(quán)限都封裝在一個(gè)類中,運(yùn)行時(shí)系統(tǒng)對訪問進(jìn)行控制,防止非法的訪問。同時(shí),java中用import語句與其它類進(jìn)行通信,以便訪問其它類的對象。h 結(jié)構(gòu)和聯(lián)合C/C+語言中用結(jié)構(gòu)和聯(lián)合來表示一定的數(shù)據(jù)結(jié)構(gòu),但是由于其成員均為公有的,安全性上存在問題。java不支持結(jié)構(gòu)和聯(lián)合,通過類把數(shù)據(jù)結(jié)構(gòu)及對該數(shù)據(jù)的操作都封裝在類里面。 i 預(yù)處理C/C+語言中有宏定義,而用宏定義實(shí)現(xiàn)的代碼往往影響程序的可讀性,而java不支持宏定義。1.2.5 java平臺不斷擴(kuò)展的計(jì)算平臺java不僅是編程語言,還是一個(gè)開發(fā)平臺,java技術(shù)給程序員提供了許多工具:編譯器、解釋器、文檔生成器和文件打包工具等等。同時(shí)java還是一個(gè)程序發(fā)布平臺,有兩種主要的"發(fā)布環(huán)境",首先java運(yùn)行時(shí)環(huán)境(java runtime environment,簡稱JRE)包含了完整的類文件包,其次許多主要的瀏覽器都提供了java解釋器和運(yùn)行時(shí)環(huán)境。目前Sun公司把java平臺劃分成J2EE、J2SE、J2ME三個(gè)平臺,針對不同的市場目標(biāo)和設(shè)備進(jìn)行定位。J2EE是Java2 Enterprise Edition,主要目的是為企業(yè)計(jì)算提供一個(gè)應(yīng)用服務(wù)器的運(yùn)行和開發(fā)平臺。J2EE本身是一個(gè)開放的標(biāo)準(zhǔn),任何軟件廠商都可以推出自己的符合J2EE標(biāo)準(zhǔn)的產(chǎn)品,使用戶可以有多種選擇。IBM、Oracle、BEA、HP等29家已經(jīng)推出了自己的產(chǎn)品,其中尤以BEA公司的weglogic產(chǎn)品和IBM公司的websphare最為著名。J2EE將逐步發(fā)展成為可以與微軟的.NET戰(zhàn)略相對抗的網(wǎng)絡(luò)計(jì)算平臺。J2SE是Java2 Standard Edition,主要目的是為臺式機(jī)和工作站提供一個(gè)開發(fā)和運(yùn)行的平臺。我們在學(xué)習(xí)java的過程中,主要是采用J2SE來進(jìn)行開發(fā)。J2ME是Java2 Micro Edition,主要是面向消費(fèi)電子產(chǎn)品,為消費(fèi)電子產(chǎn)品提供一個(gè)java的運(yùn)行平臺,使得java程序能夠在手機(jī)、機(jī)頂盒、PDA等產(chǎn)品上運(yùn)行。上述三個(gè)java平臺的關(guān)系如右圖所示。1.3 一切都是對象1.3.1 面向過程面向?qū)ο蟮牡谝粋€(gè)原則是把數(shù)據(jù)和對該數(shù)據(jù)的操作都封裝在一個(gè)類中,在程序設(shè)計(jì)時(shí)要考慮多個(gè)對象及其相互間的關(guān)系。有些功能并不一定由一個(gè)程序段完全實(shí)現(xiàn),可以讓其它對象來實(shí)現(xiàn),在本例中就由類Max完成求最大值的功能。而面向?qū)ο蟮牧硗庖粋€(gè)好處是實(shí)現(xiàn)代碼的重復(fù)使用,例如其它的程序中如果需要求最大值的功能,只需要通過類Max的對象就可以達(dá)到目的。但是如果象面向過程的代碼段那樣把求最大值的算法都實(shí)現(xiàn)在該代碼段中,則無法復(fù)用。1.3.2 面向?qū)ο? 所有的東西都是對象??梢詫ο笙胂蟪蔀橐环N新型變量,它保存著數(shù)據(jù),而且還可以對自身數(shù)據(jù)進(jìn)行操作。例如類Max中保留著數(shù)據(jù)的最大值,同時(shí)還有方法updateMax根據(jù)新加入的price值產(chǎn)生最新的最大值,還有g(shù)etMax方法返回?cái)?shù)據(jù)的最大值。 2 程序是一大堆對象的組合。通過消息傳遞,各對象知道自己應(yīng)該做些什么。如果需要讓對象做些事情,則須向該對象"發(fā)送一條消息"。具體來說,可以將消息想象成為一個(gè)調(diào)用請求,它調(diào)用的是從屬于目標(biāo)對象的一個(gè)方法。例如上面面向?qū)ο蟮某绦蚨螒?yīng)該是屬于某個(gè)類的,比如說是屬于類Shopping,則Shopping中就包含了類Max的對象max,調(diào)用方法updateMax就相當(dāng)于Shopping對象對max對象發(fā)出一條指令"updateMax",要求對象max重新計(jì)算最大值。 3 每個(gè)對象都有自己的存儲(chǔ)空間??扇菁{其它對象,或者說通過封裝現(xiàn)有的對象,可以產(chǎn)生新型對象。因此,盡管對象的概念非常簡單,但是經(jīng)過封裝以后卻可以在程序中達(dá)到任意高的復(fù)雜程度。 4 每個(gè)對象都屬于某個(gè)類。根據(jù)語法,每個(gè)對象都是某個(gè)"類"的一個(gè)"實(shí)例"。一個(gè)類的最重要的的特征就是"能將什么消息發(fā)給它?",也就是類本身有哪些操作。例如max是類Max的實(shí)例。1.4 構(gòu)建java程序1.4.1 第一個(gè)java applicationjava程序分為java application(java 應(yīng)用程序)和java applet(java小應(yīng)用程序)兩種。下面讓我們編寫一個(gè)java應(yīng)用程序,它能夠利用來自java標(biāo)準(zhǔn)庫的System對象的多種方法,打印出與當(dāng)前運(yùn)行的系統(tǒng)有關(guān)的資料。其中"/"代表一種注釋方式,表示從這個(gè)符號開始到這行結(jié)束的所有內(nèi)容都是注釋。在每個(gè)程序文件的開頭,如果這個(gè)文件的代碼中用到了系統(tǒng)所提供的額外的類,就必須放置一個(gè)import語句。說它是額外的是指一個(gè)特殊的類庫"java.lang"會(huì)自動(dòng)導(dǎo)入到每個(gè)java文件。/這是我們的第一個(gè)java application,該程序保存在文件Property.java中import java.util.*; /*下面我們用到了Date和Properties這兩個(gè)類,是屬于java.util這個(gè)包的;*/*而System和Runtime這兩個(gè)類,是屬于java.lang這個(gè)包的。*/public class Property /程序員給這個(gè)類取名為Propertypublic static void main(String args) /main是類的主方法System.out.println(new Date( ); /在命令行下面打印出日期Properties p=System.getProperties( ); /獲得系統(tǒng)的Properties對象pp.list(System.out); /在命令行下打印出p中的各個(gè)系統(tǒng)變量的值System.out.println("- Memory Usage:"); /*打印一行字符串-Memory Usage*/Runtime rt=Runtime.getRuntime( ); /獲得系統(tǒng)的Runtime對象rtSystem.out.println("Total Memory= " + rt.totalMemory( ) /打印總內(nèi)存大小+" Free Memory = "+rt.freeMemory( ); /打印空閑內(nèi)存大小在java中,程序都是以類的方式組織的,java源文件都保存在以java為后綴的.java文件當(dāng)中。每個(gè)可運(yùn)行的程序都是一個(gè)類文件,或者稱之為字節(jié)碼文件,保存在.class文件中。而作為一個(gè)java application,類中必須包含主方法,程序的執(zhí)行是從main方法開始的,方法頭的格式是確定不變的:public static void main(String args) 其中關(guān)鍵字public意味著方法可以由外部世界調(diào)用。main方法的參數(shù)是一個(gè)字符串?dāng)?shù)組args,雖然在本程序中沒有用到,但是必須列出來。程序的第一行非常有意思:System.out.println(new Date();打印語句的參數(shù)是一個(gè)日期對象Date,而創(chuàng)建Date對象的目的就是把它的值發(fā)給println()語句。一旦這個(gè)語句執(zhí)行完畢,Date對象就沒用了,而后"無用內(nèi)存回收器"會(huì)將其收回。第二行中調(diào)用了System.getProperties( )。從幫助文檔中可知,getProperties( )是System類的一個(gè)靜態(tài)方法(static 方法),由于它是"靜態(tài)"的,所以不必創(chuàng)建任何對象就可以調(diào)用該方法。在第三行,Properties對象有一個(gè)名為list( )的方法,它將自己的全部內(nèi)容都發(fā)給一個(gè)PrintStream對象,該對象就是list()方法的參數(shù)。第四行和第六行是典型的打印語句,其中第六行通過運(yùn)算符""的重載來連接多個(gè)字符串對象,在java中只有當(dāng)""運(yùn)算符作用于字符串時(shí)在能夠進(jìn)行重載。但是讓我們仔細(xì)觀察下述語句:System.out.println("Total Memory= " + rt.totalMemory( ) /打印總內(nèi)存大小+" Free Memory = "+rt.freeMemory( ); /打印空閑內(nèi)存大小其中,totalMemory( )和freeMemory( )返回的是數(shù)值,并非String對象。如果將一個(gè)字符串與一個(gè)數(shù)值相加,結(jié)果會(huì)如何?在這種情況下,編譯器會(huì)自動(dòng)調(diào)用一個(gè)toString()方法,將該數(shù)值(int型或者float型)轉(zhuǎn)換成字符串。經(jīng)過這樣處理以后,就可以用""進(jìn)行字符串連接了。main()的第五行通過調(diào)用Runtime的getRuntime()方法創(chuàng)建了一個(gè)Runtime對象,該對象中包含了內(nèi)存等信息。1.4.2 java程序的編輯java程序的編輯可以使用任何一種文本編輯器,例如UltraEdit、Notepad、Wordpad甚至word,然后只要把編輯好的文件存成.java文件。當(dāng)然也可以用一些集成開發(fā)環(huán)境,例如Borland公司的JBuilder,IBM公司的Visualage for Java,此外還有cafe、kawa等其它集成開發(fā)環(huán)境。1.4.3 java程序的編譯Sun公司為全世界的java程序員提供了一個(gè)免費(fèi)的java程序開發(fā)包(Java Develop Kit,簡稱JDK),其中包括了java編譯器命令"javac",以及java執(zhí)行命令"java",還有幫助文檔生成器命令"javadoc"等等。所有這些命令都可以在命令行下運(yùn)行,例如我們要編譯上述java文件Property.java,如果是在windows中進(jìn)行開發(fā),就可以在"命令提示符"下進(jìn)行編譯,在命令行中敲入"javac Property.java",如圖1_4_1所示:1.4.4 java application的執(zhí)行當(dāng)編譯結(jié)束以后,在java源文件中的每一個(gè)類都會(huì)生成相應(yīng)的 .class 文件,例如上圖中就會(huì)生成一個(gè)Property.class文件,而java程序在執(zhí)行時(shí)調(diào)用的是.class 文件。Java application的執(zhí)行是在命令行下進(jìn)行的,如果是在windows系統(tǒng)中,就可以"命令提示符"下敲入"java Propery"進(jìn)行執(zhí)行,該"java"命令會(huì)啟動(dòng)java虛擬機(jī),并讀入Property.class文件進(jìn)行執(zhí)行。由于該程序的運(yùn)行結(jié)果直接在命令行下進(jìn)行輸出1.4.5 第一個(gè)java appletjava程序的另一種形式是java applet,applet沒有main()方法,它必須嵌在超文本文件中,在瀏覽器中進(jìn)行運(yùn)行。右面這個(gè)程序?qū)⒃跒g覽器中顯示一行字符串。/這是我們的第一個(gè)java applet,該程序保存在文件HelloEducation.java中import java.awt.Graphics; /在進(jìn)行顯示輸出時(shí),需要用到類Graphics的對象;import java.applet.Applet; /Applet類是所有的java applet的父類;public class HelloEducation extends Applet /程序員給這個(gè)類取名為HelloEducation/所有的applet程序都是Applet類的子類public String s;public void init() /s=new String("Welcome to Tongfang Education"); /生成一個(gè)字符串對象public void paint(Graphics g)g.drawString(s,25,25); /在瀏覽器中坐標(biāo)為(25,25)的位置顯示字符串sapplet程序是從方法init( )開始執(zhí)行的,在該方法中完成了對字符串s的初始化工作,而顯示功能是在方法paint( )中執(zhí)行的。paint( )方法是類Applet的一個(gè)成員方法,其參數(shù)是圖形對象Graphics g,通過調(diào)用對象g的drawString( )方法就可以顯示輸出。1.4.6 java applet的執(zhí)行java applet程序也是一個(gè)類,其編譯方式與java application完全一樣,HelloEducation.java程序經(jīng)過編譯以后就生成了HelloEducation.class文件。java applet的執(zhí)行方式與java application完全不同,java applet程序必須嵌入到html文件中才能夠執(zhí)行,因此必須編寫相應(yīng)的html文件。下面為HelloEducaiton.html文件的內(nèi)容:<html><applet code=HelloEducation.class width=250 height=250></applet></html>然后可以通過JDK所提供的命令"appletviewer",在命令行下面執(zhí)行java applet程序。如果是在windows操作系統(tǒng)中,就可以在"命令提示符"下敲入"appletviewer HelloEducation.html",如圖1_4_4所示。此時(shí)系統(tǒng)會(huì)彈出另外一個(gè)窗口運(yùn)行該applet程序,結(jié)果如圖1_4_5所示。applet還可以采用另外一種方式運(yùn)行,那就是直接在瀏覽器中打開HelloEducation.html程序,結(jié)果如圖1_4_6所示。在主流的瀏覽器如IE、Netscape中都包含有java虛擬機(jī),負(fù)責(zé)解釋執(zhí)行java applet程序。1.5 java程序規(guī)范1.5.1 java源程序結(jié)構(gòu)一個(gè)完整的java源程序應(yīng)該包括下列部分:package語句; /該部分至多只有一句,必須放在源程序的第一句import語句; /*該部分可以有若干import語句或者沒有,必須放在所有的 類定義之前*/public classDefinition; /公共類定義部分,至多只有一個(gè)公共類的定義 /java語言規(guī)定該java源程序的文件名必須與該公共類名完全一致classDefinition; /類定義部分,可以有0個(gè)或者多個(gè)類定義interfaceDefinition; /接口定義部分,可以有0個(gè)或者多個(gè)接口定義例如一個(gè)java源程序可以是如下結(jié)構(gòu),該源程序命名為HelloWorldApp.java:package javawork.helloworld; /*把編譯生成的所有.class文件放到包 javawork.helloworld中*/import java.awt.*; /告訴編譯器本程序中用到系統(tǒng)的AWT包import javawork.newcentury; /*告訴編譯器本程序中用到用戶自定義的包javawork.newcentury*/public class HelloWorldApp. /*公共類HelloWorldApp的定義, 名字與文件名相同*/class TheFirstClass. /第一個(gè)普通類TheFirstClass的定義class TheSecondClass. /第二個(gè)普通類TheSecondClass的定義. /其它普通類的定義interface TheFirstInterface. /*第一個(gè)接口TheFirstInterface的定義*/. /其它接口定義package語句:由于java編譯器為每個(gè)類生成一個(gè)字節(jié)碼文件,且文件名與類名相同,因此同名的類有可能發(fā)生沖突。為了解決這一問題,java提供包來管理類名空間,包實(shí)際提供了一種命名機(jī)制和可見性限制機(jī)制。而在java的系統(tǒng)類庫中,把功能相似的類放到一個(gè)包(package)中,例如所有的圖形界面的類都放在java.awt這個(gè)包中,與網(wǎng)絡(luò)功能有關(guān)的類都放到這個(gè)包中。用戶自己編寫的類(指.class文件)也應(yīng)該按照功能放在由程序員自己命名的相應(yīng)的包中,例如上例中的javawork.helloworld就是一個(gè)包。包在實(shí)際的實(shí)現(xiàn)過程中是與文件系統(tǒng)相對應(yīng)的,例如javawork.helloworld所對應(yīng)的目錄是pathjavaworkhelloworld,而path是在編譯該源程序時(shí)指定的。比如在命令行中編譯上述HelloWorldApp.java文件時(shí),可以在命令行中敲入"javac -d f:javaproject HelloWorldApp.java",則編譯生成的HelloWorldApp.class文件將放在目錄f:javaprojectjavaworkhelloworld目錄下面,此時(shí)f:javaprojcet相當(dāng)于path。但是如果在編譯時(shí)不指定path,則生成的.class文件將放在編譯時(shí)命令行所在的當(dāng)前目錄下面。比如在命令行目錄f:javaproject下敲入編譯命令"javac HelloWorldApp.java",則生成的HelloWorldApp.class文件將放在目錄f:javaproject下面,此時(shí)的package語句相當(dāng)于沒起作用。但是,如果程序中包含了package語句,則在運(yùn)行時(shí)就必須包含包名。例如,HelloWorldApp.java程序的第一行語句是:package p1.p2;編譯的時(shí)候在命令行下輸入"javac -d path HelloWorldApp.java",則HelloWorldApp.class將放在目錄pathp1p2的下面,這時(shí)候運(yùn)行該程序時(shí)有兩種方式:第一種:在命令行下的path目錄下輸入字符"java p1.p2.HelloWorldApp"。第二種:在環(huán)境變量classpath中加入目錄path,則運(yùn)行時(shí)在任何目錄下輸入"java p1.p2.HelloWorldApp"即可。import語句:如果在源程序中用到了除java.lang這個(gè)包以外的類,無論是系統(tǒng)的類還是自己定義的包中的類,都必須用import語句標(biāo)識,以通知編譯器在編譯時(shí)找到相應(yīng)的類文件。例如上例中的java.awt是系統(tǒng)的包,而javawork.newcentury是用戶自定義的包。比如程序中用到了類Button,而Button是屬于包java.awt的,在編譯時(shí)編譯器將從目錄classpathjavaawt中去尋找類Button,classpath是事先設(shè)定的環(huán)境變量,比如可以設(shè)為:classpath=.;d:jdk1.3lib。 classpath也可以稱為類路徑,需要提醒大家注意的是,在classpath中往往包含多個(gè)路徑,用分號隔開。例如classpath=.;d:jdk1.3lib中的第一個(gè)分號之前的路徑是一個(gè)點(diǎn),表示當(dāng)前目錄,分號后面的路徑是d:jdk1.3lib,表示系統(tǒng)的標(biāo)準(zhǔn)類庫目錄。在編譯過程中尋找類時(shí),先從環(huán)境變量classpath的第一個(gè)目錄開始往下找,比如先從當(dāng)前目錄往下找java.awt中的類Button時(shí),編譯器找不著,然后從環(huán)境變量classpath的第二個(gè)目錄開始往下找,就是從系統(tǒng)的標(biāo)準(zhǔn)類庫目錄d:jdk1.3lib開始往下找java.awt的Button這個(gè)類,最后就找到了。如果要從一個(gè)包中引入多個(gè)類則在包名后加上".*"表示。如果程序中用到了用戶自己定義的包中的類,假如在上面程序中要用到j(luò)avawork.newcentury包中的類HelloWorldApp,而包javawork.newcentury所對應(yīng)的目錄是f:javaprojectjavaworknewcentury,classpath仍舊是classpath=.;d:jdk1.3lib,則編譯器在編譯時(shí)將首先從當(dāng)前目錄尋找包javawork.newcentury,結(jié)果是沒有找到;然后又從環(huán)境變量classpath的第二個(gè)目錄d:jdk1.3lib開始往下找,但是仍然沒有找到。原因在于包javawork.newcentury是放在目錄f:javaproject下面。因此,需要重新設(shè)定環(huán)境變量classpath,設(shè)為classpath=.;d:jdk1.3lib;f:javaproject 。所以編譯器從f:javaproject開始找包javawork.newcentury就可以找到。源文件的命名規(guī)則:如果在源程序中包含有公共類的定義,則該源文件名必須與該公共類的名字完全一致,字母的大小寫都必須一樣。這是java語言的一個(gè)嚴(yán)格的規(guī)定,如果不遵守,在編譯時(shí)就會(huì)出錯(cuò)。因此,在一個(gè)java源程序中至多只能有一個(gè)公共類的定義。如果源程序中不包含公共類的定義,則該文件名可以任意取名。如果在一個(gè)源程序中有多個(gè)類定義,則在編譯時(shí)將為每個(gè)類生成一個(gè).class文件。1.5.2 java編程規(guī)范軟件開發(fā)是一個(gè)集體協(xié)作的過程,程序員之間的代碼是經(jīng)常要進(jìn)行交換閱讀的,因此,java源程序有一些約定成俗的命名規(guī)定,主要目的是為了提高java程序的可讀性。包名:包名是全小寫的名詞,中間可以由點(diǎn)分隔開,例如:java.awt.event;類名:首字母大寫,通常由多個(gè)單詞合成一個(gè)類名,要求每個(gè)單詞的首字母也要大寫,例如class HelloWorldApp;接口名:命名規(guī)則與類名相同,例如interface Collection;方法名:往往由多個(gè)單詞合成,第一個(gè)單詞通常為動(dòng)詞,首字母小寫,中間的每個(gè)單詞的首字母都要大寫,例如:balanceAccount,isButtonPressed;變量名:全小寫,一般為名詞,例如:length;常量名:基本數(shù)據(jù)類型的常量名為全大寫,如果是由多個(gè)單詞構(gòu)成,可以用下劃線隔開,例如:int YEAR, int WEEK_OF_MONTH;如果是對象類型的常量,則是大小寫混合,由大寫字母把單詞隔開。1.5.3 java幫助文檔java中所有類庫的介紹都保存在java幫助文檔中,程序員在編程過程中,必須查閱該幫助文檔,了解系統(tǒng)提供的類的功能、成員方法、成員變量等等信息以后,才能夠更好的編程。同時(shí),java開發(fā)工具包(JDK)提供了"java"、"javac"、"javadoc"、"appletviewer"等命令,在java幫助文檔中也對此進(jìn)行了詳細(xì)的介紹。java幫助文檔是以HTML文件的形式組織,通常是安裝在JDK目錄下的docs子目錄中的index.html文件,所以用瀏覽器就可以進(jìn)行查閱。例如JDK是安裝在D:jdk1.3目錄下面,則用瀏覽器打開D:jdk1.3docsindex.html文件,就可以看到圖1_5_1所示的幫助文檔。 如果希望查閱JDK的命令,則可以選擇"Tool Documentation",如圖1_5_2紅字所示。 此時(shí)瀏覽器就會(huì)把java、javac、javadoc、appletviewer等命令列出來,如圖1_5_3。 但是大多時(shí)時(shí)候,我們需要查閱的是類庫的文檔,因此需要在"D:jdk1.3docsindex.html"文件中選擇"Java 2 Platform API Specification",如圖1_5_4中紅字所示。 然后就進(jìn)入了詳細(xì)的類庫介紹,如圖1_5_5所示。圖中左上部分列出了java標(biāo)準(zhǔn)類庫中的各個(gè)包,例如第一個(gè)是java.applet包,與java applet有關(guān)的類都放在這個(gè)包中,第二個(gè)是java.awt包,有關(guān)圖形界面的類都放在這個(gè)包中。如果選擇了包java.awt,則圖中左下部分就會(huì)列出java.awt包所包含的所有的類(class)、接口(interface)、例外(Exception)和錯(cuò)誤(Error)。如果選擇了類Button,則在圖中右邊空間內(nèi)將顯示該類的詳細(xì)介紹,包括:該類的父類、實(shí)現(xiàn)的接口、功能介紹、構(gòu)造方法、成員方法、成員變量、從父類繼承的成員方法、從父類和接口繼承的成員變量、每個(gè)成員方法的具體介紹。如果程序員知道某個(gè)成員方法或者成員變量的名字,但是并不知道它屬于哪個(gè)類,則可以通過選擇圖中右上的"Index",就會(huì)按照字母表順序列出所有的成員方法、成員變量、類和接口。"Index"旁邊的"Tree"可以把所有的類按照繼承關(guān)系列出來。1.5.4 java注釋單行注釋:從"/"開始到本行結(jié)束的內(nèi)容都是注釋,例如: /這是一行單行注釋 /則是另一行單行注釋多行注釋:在"/*"和"*/"之間的所有內(nèi)容都是注釋,例如:/*這是一段注釋分布在多行之中*/文檔注釋:在注釋方面java提供一種C/C+所不具有的文檔注釋方式。其核心思想是當(dāng)程序員編完程序以后,可以通過JDK提供的javadoc命令,生成所編程序的API文檔,而該文檔中的內(nèi)容主要就是從文檔注釋中提取的。該API文檔以HTML文件的形式出現(xiàn),與java幫助文檔的風(fēng)格與形式完全一致。凡是在"/*"和"*/"之間的內(nèi)容都是文檔注釋。例如下面的DocTest.java文件:/* 這是一個(gè)文檔注釋的例子,主要介紹下面這個(gè)類 */public class DocTest/* 變量注釋,下面這個(gè)變量主要是充當(dāng)整數(shù)計(jì)數(shù) */public int i;/* 方法注釋,下面這個(gè)方法的主要功能是計(jì)數(shù) */public void count( ) 1.6 建立java開發(fā)環(huán)境1.6.1 安裝Java Develop Kit(JDK)Sun公司為所有的java程序員提供了一套免費(fèi)的java開發(fā)和運(yùn)行環(huán)境,取名為Java2 SDK,可以從上進(jìn)行下載,也可以從同方教育網(wǎng)站上下載。但是最新的消息和版本必須從Sun的網(wǎng)站上才能夠得到。安裝的時(shí)候可以選擇安裝到任意的硬盤驅(qū)動(dòng)器上,例如安裝到D:jdk1.3目錄下。通常在JDK目錄下有bin、demo、lib、jre等子目錄,其中bin目錄保存了javac、java、appletviewer等命令文件,demo目錄保存了許多java的例子,lib目錄保存了java的類庫文件,jre保存的是java的運(yùn)行時(shí)環(huán)境。1.6.2 安裝java幫助文檔由于JDK的安裝程序中并不包含幫助文檔,因此也必須從Sun的網(wǎng)站上下載進(jìn)行安裝。通常安裝在JDK所在目錄的docs子目錄下面。用瀏覽器打開docs子目錄下的index.html文件就可以閱讀所有的幫助文檔。1.6.3 配置類路徑在安裝完JDK之后,必須配置類路徑classpath和環(huán)境變量path,JDK才能夠正常運(yùn)行。如果是在windows98中運(yùn)行,則在C:autoexec.bat文件的末尾添加下列語句:classpath= .;d:jdk1.3lib;path=%path%;d:jdk1.3bin;如果是在windows2000中,則需要用右鍵單擊桌面上"我的電腦",選擇

注意事項(xiàng)

本文(第一章 java基礎(chǔ))為本站會(huì)員(yo****e)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!