Java基礎(chǔ)教程(0基礎(chǔ))【適合初學(xué)者閱讀】_第1頁(yè)
Java基礎(chǔ)教程(0基礎(chǔ))【適合初學(xué)者閱讀】_第2頁(yè)
Java基礎(chǔ)教程(0基礎(chǔ))【適合初學(xué)者閱讀】_第3頁(yè)
Java基礎(chǔ)教程(0基礎(chǔ))【適合初學(xué)者閱讀】_第4頁(yè)
Java基礎(chǔ)教程(0基礎(chǔ))【適合初學(xué)者閱讀】_第5頁(yè)
已閱讀5頁(yè),還剩494頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 第 1 部分Java 基礎(chǔ)程序設(shè)計(jì)Java 語(yǔ)言介紹簡(jiǎn)單的 Java 程序Java 中的變量與數(shù)據(jù)類(lèi)型運(yùn)算符、表達(dá)式與語(yǔ)句循環(huán)與選擇結(jié)構(gòu)數(shù)組與方法的使用第1頁(yè)第1章認(rèn)識(shí) Java1.1Java 的歷史Java 來(lái)自于 Sun 公司的一個(gè)叫 Green 的項(xiàng)目,其原先的目的是為家用電子消費(fèi)產(chǎn)品開(kāi)發(fā)一個(gè)分布式代碼系統(tǒng),這樣就可以把 E-mail 發(fā)給電冰箱、電視機(jī)等家用電器,對(duì)它們進(jìn)行控制,和它們進(jìn)行信息交流。開(kāi)始他們準(zhǔn)備采用 C+,但 C+太復(fù)雜,安全性差,最后基于 C+開(kāi)發(fā)一種新語(yǔ)言 Oak(Java 的前身)。Oak 是一種用于網(wǎng)絡(luò)的精巧而安全的語(yǔ)言,Sun 公司曾以此投標(biāo)一個(gè)交互式電視項(xiàng)

2、目,但結(jié)果被 SGI 打敗。于是 Oak 幾乎無(wú)家可歸,恰巧這時(shí) Mark Ardreesen 開(kāi)發(fā)的 Mosaic 和 Netscape 啟發(fā)了 Oak項(xiàng)目組成員,他們用 Java 編制了 HotJava 瀏覽器,得到了 Sun 公司首席執(zhí)行官 ScottMcNealy 的支持,觸發(fā)了 Java 進(jìn)軍 Internet。Java 技術(shù)是由美國(guó) Sun 公司倡導(dǎo)和推出的,它包括 Java 語(yǔ)言和 Java Media APIS、Security APIs、Management APIs、Java Applet、Java RMI、JavaBean、JavaOS、Java Servlet、Java

3、Server Page 以及 JDBC 等?,F(xiàn)把 Java 技術(shù)的發(fā)展歷程簡(jiǎn)述如下:1990 年,Sun 公司 James Gosling 領(lǐng)導(dǎo)的小組設(shè)計(jì)了一種平臺(tái)獨(dú)立的語(yǔ)言 Oak,主要用于為各種家用電器編寫(xiě)程序。1995 年 1 月,Oak 被改名為 Java;1995 年 5 月 23 日,Sun 公司在 Sun World 95上正式發(fā)布 Java 和 HotJava 瀏覽器。1995 年 8 月至 12 月,Netscape 公司、Oracle 公司、Borland 公司、SGI 公司、Adobe 公司、IBM 公司、AT&T 公司、Intel 公司獲得 Java 許可證。1996

4、年 1 月,Sun 公司宣布成立新的業(yè)務(wù)部門(mén)JavaSoft 部,以開(kāi)發(fā)、銷(xiāo)售并支持基于 Java 技術(shù)的產(chǎn)品,由 Alan Baratz 任總裁。同時(shí)推出 Java 開(kāi)發(fā)工具包 JDK(Java Development Kit)1.0,為開(kāi)發(fā)人員提供用來(lái)編制 Java 應(yīng)用軟件所需的工具。1996 年 2 月,Sun 公司發(fā)布 Java 芯片系列,包括 PicoJava、MicroJava 和 UltraJava,并推出 Java 數(shù)據(jù)庫(kù)連接 JDBC(Java Database Connectivity)。1996 年 3 月,Sun 公司推出 Java WorkShop。第2頁(yè)1996

5、年 4 月,Microsoft 公司、SCO 公司、蘋(píng)果電腦公司(Apple)、NEC 公司等獲得 Java 許可證。Sun 公司宣布允許蘋(píng)果電腦、HP、日立、IBM、Microsoft、Novell、SGI、SCO、Tamdem 等公司將 Java 平臺(tái)嵌入到其操作系統(tǒng)中。1996 年 5 月,HP 公司、Sybase 公司獲得 Java 許可證。北方電訊公司宣布把 Java技術(shù)和 Java 微處理器應(yīng)用到其下一代電話(huà)機(jī)中的計(jì)劃。5 月 29 日,Sun 公司在舊金山舉行第一屆 JavaOne 世界 Java 開(kāi)發(fā)者大會(huì),業(yè)界人士踴躍參加。Sun 公司在大會(huì)上推出一系列 Java 平臺(tái)新技術(shù)

6、。1996 年 8 月,JavaWorkShop 成為 Sun 公司通過(guò)互聯(lián)網(wǎng)提供的第一個(gè)產(chǎn)品。1996 年 9 月,Addison-Wesley 和 Sun 公司推出 Java 虛擬機(jī)規(guī)范和 Java 類(lèi)庫(kù)。1996 年 10 月,德州儀器等公司獲得 Java 許可證。Sun 公司提前完成 JavaBean規(guī)范并發(fā)布,同時(shí)發(fā)布第一個(gè) Java JIT(Just-In-Time)編譯器,并打算在 JavaWorkShop 和 Solaris 操作系統(tǒng)中加入 JIT。10 月 29 日,Sun 公司發(fā)布 Java 企業(yè)計(jì)算技術(shù),包括 JavaStation 網(wǎng)絡(luò)計(jì)算機(jī)、65 家公司發(fā)布的 85

7、個(gè) Java 產(chǎn)品及應(yīng)用、7 個(gè)新的 Java 培訓(xùn)課程及 Java 咨詢(xún)服務(wù)、基于 Java 的 Solstice 互聯(lián)網(wǎng)郵件軟件、新的 Java 開(kāi)發(fā)者支持服務(wù)、HotJava Views 演示、Java Tutor、Java Card API等。Sun 公司宣布完成 Java Card API 規(guī)范,這是智能卡使用的第一個(gè)開(kāi)放 API。Java Card 規(guī)范將把 Java 能力賦予全世界億萬(wàn)張智能卡。1996 年 11 月,IBM 公司獲得 JavaOS 和 HotJava 許可證。Novell 公司獲得 JavaWorkShop 許可證。Sun 公司和 IBM 公司宣布雙方就提供 J

8、ava 化的商業(yè)解決方案達(dá)成一項(xiàng)廣泛協(xié)議,IBM 公司同意建立第一個(gè) Java 檢驗(yàn)中心。1996 年 12 月,Xerox 等公司獲得 Java 或 JavaOS 許可證。Sun 公司發(fā)布 JDK1.1、Java 商貿(mào)工具包、JavaBean 開(kāi)發(fā)包及一系列 Java APIs;推出一個(gè)新的 JavaServer產(chǎn)品系列,其中包括 Java Web Server、Java NC Server 和 JavaServer Toolkit。Sun公司發(fā)布 100%純 Java 計(jì)劃,得到百家公司的支持。1997 年 1 月,SAS 等公司獲得 Java 許可證。Sun 公司交付完善的 JavaBe

9、an 開(kāi)發(fā)包,這是在確定其規(guī)范后不到 8 個(gè)月內(nèi)完成的。1997 年 2 月,Sun 公司和 ARM 公司宣布同意使 JavaOS 運(yùn)行在 ARM 公司的RISC 處理器架構(gòu)上。Informix 公司宣布在其 Universal Server 和其他數(shù)據(jù)庫(kù)產(chǎn)品上支持 JDK1.1。Netscape 公司宣布其 Netscape Communicator 支持所有 Java第3頁(yè)化的應(yīng)用軟件和核心 API。1997 年 3 月,HP 公司獲得 Java WorkShop 許可證,用于其 HP-UX 操作系統(tǒng)。西門(mén)子、AG 公司等獲得 Java 許可證。日立半導(dǎo)體公司、Informix 公司等獲得

10、JavaOS 許可證。Novell 公司獲得 Java Studio 許可證。Sun 公司發(fā)售的 JavaOS 1.0操作系統(tǒng),這是一種在微處理器上運(yùn)行 Java 環(huán)境的最小、最快的方法,可提供給 JavaOS 許可證持有者使用。Sun 公司發(fā)售 HotJava Browser 1.0,這是一種 Java瀏覽器,可以方便地按需編制專(zhuān)用的信息應(yīng)用軟件,如客戶(hù)自助臺(tái)和打上公司牌號(hào)的網(wǎng)絡(luò)應(yīng)用軟件。1996 年 6 月,Sun 公司發(fā)布 JSP1.0,同時(shí)推出 JDK1.3 和 Java Web Server 2.0。1999 年 11 月,Sun 公司發(fā)布 JSP1.1,同時(shí)推出 JSWDK1.0.

11、1 和 Java Servlet 2.2。2000 年 9 月,Sun 公司發(fā)布 JSP1.2 和 Java Servlet 2.3 API。1.2Java 的現(xiàn)狀Java 是 Sun 公司推出的新一代面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,特別適于 Internet 應(yīng)用程序開(kāi)發(fā),它的平臺(tái)無(wú)關(guān)性直接威脅到 Wintel 的壟斷地位,這表現(xiàn)在以下幾個(gè)方面: 計(jì)算機(jī)產(chǎn)業(yè)的許多大公司購(gòu)買(mǎi)了 Java 許可證,包括 IBM、Apple、DEC、Adobe、SiliconGraphics、HP、Oracle、TOSHIBA 以及 Microsoft。這一點(diǎn)說(shuō)明,Java 已得到了業(yè)界的認(rèn)可。眾多的軟件開(kāi)發(fā)商開(kāi)始支持 J

12、ava 軟件產(chǎn)品。例如 Inprise 公司的 JBuilder、Sun公司自己做的 Java 開(kāi)發(fā)環(huán)境 JDK 與 JRE。Sysbase 公司和 Oracle 公司均已支持HTML 和 Java。 Intranet 正在成為企業(yè)信息系統(tǒng)最佳的解決方案,而其中 Java 將發(fā)揮不可替代的作用。Intranet 的目的是將 Internet 用于企業(yè)內(nèi)部的信息類(lèi)型,它的優(yōu)點(diǎn)是便宜、易于使用和管理。用戶(hù)不管使用何種類(lèi)型的機(jī)器和操作系統(tǒng),界面是統(tǒng)一的 Internet 瀏覽器,而數(shù)據(jù)庫(kù)、Web 頁(yè)面、Applet、Servlet、JSP 則存儲(chǔ)在 Web服務(wù)器上,無(wú)論是開(kāi)發(fā)人員還是管理人員,或是用

13、戶(hù)都可以受益于該解決方案。第4頁(yè)1.31.3.1Java 的特點(diǎn)Java 語(yǔ)言的優(yōu)點(diǎn)Java 語(yǔ)言是一種優(yōu)秀的編程語(yǔ)言。它最大的優(yōu)點(diǎn)就是與平臺(tái)無(wú)關(guān),在 Windows9x、Windows NT、Solaris、Linux、MacOS 以及其它平臺(tái)上,都可以使用相同的代碼?!耙淮尉帉?xiě),到處運(yùn)行”的特點(diǎn),使其在互聯(lián)網(wǎng)上被廣泛采用。由于 Java 語(yǔ)言的設(shè)計(jì)者們十分熟悉 C+語(yǔ)言,所以在設(shè)計(jì)時(shí)很好地借鑒了 C+語(yǔ)言??梢哉f(shuō),Java 語(yǔ)言是一種比 C+語(yǔ)言“還面向?qū)ο蟆钡囊环N編程語(yǔ)言。Java語(yǔ)言的語(yǔ)法結(jié)構(gòu)與 C+語(yǔ)言的語(yǔ)法結(jié)構(gòu)十分相似,這使得 C+程序員學(xué)習(xí) Java 語(yǔ)言更加容易。當(dāng)然,如果僅僅

14、是對(duì) C+改頭換面,那么就不會(huì)有今天的 Java 熱了。Java 語(yǔ)言提供的一些有用的新特性,使得使用 Java 語(yǔ)言比 C+語(yǔ)言更容易寫(xiě)出“無(wú)錯(cuò)代碼”。這些新特性包括:1、 提供了對(duì)內(nèi)存的自動(dòng)管理,程序員無(wú)需在程序中進(jìn)行分配、釋放內(nèi)存,那些可怕的內(nèi)存分配錯(cuò)誤不會(huì)再打擾設(shè)計(jì)者了;2、 去除了 C+語(yǔ)言中的令人費(fèi)解、容易出錯(cuò)的“指針”,用其它方法來(lái)進(jìn)行彌補(bǔ);3、 避免了賦值語(yǔ)句(如 a = 3)與邏輯運(yùn)算語(yǔ)句(如 a = = 3)的混淆;4、 取消了多重繼承這一復(fù)雜的概念。Java 語(yǔ)言的規(guī)范是公開(kāi)的,可以在 上找到它,閱讀 Java 語(yǔ)言的規(guī)范是提高技術(shù)水平的好方法。1.3.2Java 語(yǔ)言的

15、關(guān)鍵特性Java 語(yǔ)言有許多有效的特性,吸引著程序員們,最主要的有以下幾個(gè):第5頁(yè)1.簡(jiǎn)潔有效Java 語(yǔ)言是一種相當(dāng)簡(jiǎn)潔的“面向?qū)ο蟆背绦蛟O(shè)計(jì)語(yǔ)言。Java 語(yǔ)言省略了 C+語(yǔ)言中所有的難以理解、容易混淆的特性,例如頭文件、指針、結(jié)構(gòu)、單元、運(yùn)算符重載、虛擬基礎(chǔ)類(lèi)等。它更加嚴(yán)謹(jǐn)、簡(jiǎn)潔。2.可移植性對(duì)于一個(gè)程序員而言,寫(xiě)出來(lái)的程序如果不需修改就能夠同時(shí)在 Windows、MacOS、UNIX 等平臺(tái)上運(yùn)行,簡(jiǎn)直就是美夢(mèng)成真的好事!而 Java 語(yǔ)言就讓這個(gè)原本遙不可及的事已經(jīng)越來(lái)越近了。使用 Java 語(yǔ)言編寫(xiě)的程序,只要做較少的修改,甚至有時(shí)根本不需修改就可以在不同平臺(tái)上運(yùn)行了。3.面向?qū)ο?/p>

16、可以這么說(shuō),“面向?qū)ο蟆笔擒浖こ虒W(xué)的一次革命,大大提升了人類(lèi)的軟件開(kāi)發(fā)能力,是一個(gè)偉大的進(jìn)步,是軟件發(fā)展的一個(gè)重大的里程碑。在過(guò)去的 30 年間,“面向?qū)ο蟆庇辛碎L(zhǎng)足的發(fā)展,充分體現(xiàn)了其自身的價(jià)值,到現(xiàn)在已經(jīng)形成了一個(gè)包含了“面向?qū)ο蟮南到y(tǒng)分析”、“面向?qū)ο蟮南到y(tǒng)設(shè)計(jì)”、“面向?qū)ο蟮某绦蛟O(shè)計(jì)”的完整體系。所以作為一種現(xiàn)代編程語(yǔ)言,是不能夠偏離這一方向的,Java 語(yǔ)言也不例外。4.解釋型Java 語(yǔ)言是一種解釋型語(yǔ)言,相對(duì)于 C/C+語(yǔ)言來(lái)說(shuō),用 Java 語(yǔ)言寫(xiě)出來(lái)的程序效率低,執(zhí)行速度慢。但它正是通過(guò)在不同平臺(tái)上運(yùn)行 Java 解釋器,對(duì) Java 代碼進(jìn)行解釋?zhuān)瑏?lái)實(shí)現(xiàn)“一次編寫(xiě),到處運(yùn)

17、行”的宏偉目標(biāo)的。為了達(dá)到目標(biāo),犧牲效率還是值得的,況且,現(xiàn)在的計(jì)算機(jī)技術(shù)日新月異,運(yùn)算速度也越來(lái)越快,用戶(hù)是不會(huì)感到太慢的。5.適合分布式計(jì)算Java 語(yǔ)言具有強(qiáng)大的、易于使用的聯(lián)網(wǎng)能力,非常適合開(kāi)發(fā)分布式計(jì)算的程序。Java 應(yīng)用程序可以像訪(fǎng)問(wèn)本地文件系統(tǒng)那樣通過(guò) URL 訪(fǎng)問(wèn)遠(yuǎn)程對(duì)象。使用 Java 語(yǔ)言編寫(xiě) Socket 通信程序十分簡(jiǎn)單,使用它比使用任何其它語(yǔ)言都簡(jiǎn)第6頁(yè)單。而且它還十分適用于公共網(wǎng)關(guān)接口(CGI)腳本的開(kāi)發(fā),另外還可以使用 Java 小應(yīng)用程序(Applet)、Java 服務(wù)器頁(yè)面(Java Server Page,簡(jiǎn)稱(chēng) JSP)、Servlet 等等手段來(lái)構(gòu)建更豐

18、富的網(wǎng)頁(yè)。6.擁有較好的性能正如前面所述,由于 Java 是一種解釋型語(yǔ)言,所以它的執(zhí)行效率相對(duì)就會(huì)慢一些,但由于 Java 語(yǔ)言采用了兩種手段,使得其性能還是不錯(cuò)的。A、 Java 語(yǔ)言源程序編寫(xiě)完成后,先使用 Java 偽編譯器進(jìn)行偽編譯,將其轉(zhuǎn)換為中間碼(也稱(chēng)為字節(jié)碼),再解釋?zhuān)籅、提供了一種“準(zhǔn)實(shí)時(shí)”(Just-in-Time,JIT)編譯器,當(dāng)需要更快的速度時(shí),可以使用 JIT 編譯器將字節(jié)碼轉(zhuǎn)換成機(jī)器碼,然后將其緩沖下來(lái),這樣速度就會(huì)更快。7.健壯、防患于未然Java 語(yǔ)言在偽編譯時(shí),做了許多早期潛在問(wèn)題的檢查,并且在運(yùn)行時(shí)又做了一些相應(yīng)的檢查,可以說(shuō)是一種最嚴(yán)格的 “編譯器”。它

19、的這種“防患于未然”的手段將許多程序中的錯(cuò)誤扼殺在搖藍(lán)之中。經(jīng)常有許多在其它語(yǔ)言中必須通過(guò)運(yùn)行才會(huì)暴露出來(lái)的錯(cuò)誤,在編譯階段就被發(fā)現(xiàn)了。另外,在 Java 語(yǔ)言中還具備了許多保證程序穩(wěn)定、健壯的特性,有效地減少了錯(cuò)誤,這樣使得 Java 應(yīng)用程序更加健壯。8.具有多線(xiàn)程處理能力線(xiàn)程,是一種輕量級(jí)進(jìn)程,是現(xiàn)代程序設(shè)計(jì)中必不可少的一種特性。多線(xiàn)程處理能力使得程序能夠具有更好的交互性、實(shí)時(shí)性。Java 在多線(xiàn)程處理方面性能超群,具有讓設(shè)計(jì)者驚喜的強(qiáng)大功能,而且在 Java 語(yǔ)言中進(jìn)行多線(xiàn)程處理很簡(jiǎn)單。9.具有較高的安全性由于 Java 語(yǔ)言在設(shè)計(jì)時(shí),在安全性方面考慮很仔細(xì),做了許多探究,使得 Jav

20、a語(yǔ)言成為目前最安全的一種程序設(shè)計(jì)語(yǔ)言。盡管 Sun 公司曾經(jīng)許諾過(guò):“通過(guò) Java 可以輕松構(gòu)建出防病毒、防黑客的系統(tǒng)”,但“世界上沒(méi)有絕對(duì)的安全”這一真理是不會(huì)因?yàn)槟橙说脑S諾而失靈驗(yàn)的。第7頁(yè)就在 JDK (Java Development Kit)1.0 發(fā)布不久后,美國(guó) Princeton(普林斯頓)大學(xué)的一組安全專(zhuān)家發(fā)現(xiàn)了 Java 1.0 安全特性中的第一例錯(cuò)誤。從此,Java 安全方面的問(wèn)題開(kāi)始被關(guān)注。不過(guò)至今所發(fā)現(xiàn)的安全隱患都很微不足道,而且 Java 開(kāi)發(fā)組還宣稱(chēng),他們對(duì)系統(tǒng)安全方面的 Bugs 非常重視,會(huì)對(duì)這些被發(fā)現(xiàn)的 Bugs 立即進(jìn)行修復(fù)。而且由于 Sun 公司開(kāi)放

21、了 Java 解釋器的細(xì)節(jié),所以有助于通過(guò)各界力量,共同發(fā)現(xiàn)、防范、制止這些安全隱患。10.是一種動(dòng)態(tài)語(yǔ)言Java 是一種動(dòng)態(tài)的語(yǔ)言,這表現(xiàn)在以下兩個(gè)方面:A、 在 Java 語(yǔ)言中,可以簡(jiǎn)單、直觀地查詢(xún)運(yùn)行時(shí)的信息;B、 可以將新代碼加入到一個(gè)正在運(yùn)行的程序中去。11.是一種中性結(jié)構(gòu)“Java 編譯器生成的是一種中性的對(duì)象文件格式?!币簿褪钦f(shuō),Java 編譯器通過(guò)偽編譯后,將生成一個(gè)與任何計(jì)算機(jī)體系統(tǒng)無(wú)關(guān)的“中性”的字節(jié)碼。這種中性結(jié)構(gòu)其實(shí)并不是 Java 首創(chuàng)的,在 Java 出現(xiàn)之前 UCSD Pascal 系統(tǒng)就已在一種商業(yè)產(chǎn)品中做到了這一點(diǎn),另外在 UCSD Pascal 之前也有這

22、種方式的先例,在Niklaus Wirth 實(shí)現(xiàn)的 Pascal 語(yǔ)言中就采用了這種降低一些性能,換取更好的可移植性和通用性的方法。Java 的這種字節(jié)碼經(jīng)過(guò)了許多精心的設(shè)計(jì),使得其能夠很好地兼容于當(dāng)今大多數(shù)流行的計(jì)算機(jī)系統(tǒng),在任何機(jī)器上都易于解釋?zhuān)子趧?dòng)態(tài)翻譯成為機(jī)器代碼。1.4Java 虛擬機(jī)(JVM)Java 虛擬機(jī)(JVM)是可運(yùn)行 Java 代碼的假想計(jì)算機(jī)。只要根據(jù) JVM 規(guī)范描述將解釋器移植到特定的計(jì)算機(jī)上,就能保證經(jīng)過(guò)編譯的任何 Java 代碼能夠在該系統(tǒng)上運(yùn)行。如圖 1-1 所示:第8頁(yè)圖 1-1Java 虛擬機(jī)從圖 1-1 中不難明白 JAVA 可以實(shí)現(xiàn)可移植性的原因,只

23、要在操作系統(tǒng)上(WINNT、Linux、Unix)植入 JVM(Java 虛擬機(jī)),JAVA 程序就具有可移植性,也符合 SUN 公司提出的口號(hào)“Write Once, Run Anywhere”(“一次編寫(xiě),處處運(yùn)行”)。目前,Java 技術(shù)的架構(gòu)包括以下三個(gè)方面:J2EE (Java 2 Platform Enterprise Edition) 企業(yè)版,是以企業(yè)為環(huán)境而開(kāi)發(fā)應(yīng)用程序的解決方案。J2SE (Java 2 Platform Stand Edition) 標(biāo)準(zhǔn)版,是桌面開(kāi)發(fā)和低端商務(wù)應(yīng)用的解決方案。J2ME (Java 2 Platform Micro Edition) 小型版,

24、是致力于消費(fèi)產(chǎn)品和嵌入式設(shè)備的最佳解決方案。第9頁(yè)1.5JDK 的安裝及環(huán)境變量的配置要開(kāi)發(fā) Java 程序首先必須要配置好環(huán)境變量,而 Java 的運(yùn)行環(huán)境的配置比較麻煩,相信有些讀者也會(huì)有這種體會(huì),下面來(lái)看一下 JDK 的安裝過(guò)程。在這里 JDK 選用的是 J2SDK1.4.2 版本。安裝分為兩個(gè)步驟:1、 首先要準(zhǔn)備好 JDK 的安裝文件:j2sdk-1_4_0_03-windows-i586 ;2、 配置環(huán)境變量 path。先來(lái)看一下步驟一的安裝過(guò)程:圖 1-2啟動(dòng) JDK 安裝程序第10頁(yè)圖 1-3將安裝路徑設(shè)置為 c:j2sdk之后走默認(rèn)的安裝設(shè)置即可。從圖 1-1 可以看出,在編

25、譯 Java 程序時(shí)需要用到 Javac 這個(gè)命令,執(zhí)行 Java 程序需要 java 這個(gè)命令,而這兩個(gè)命令并不是 windows 自帶的命令,所以使用它們的時(shí)候需要配置好環(huán)境變量,這樣就可以在任何的目錄下使用這兩個(gè)命令了。那么該如何設(shè)置環(huán)境變量呢?在我的電腦上點(diǎn)擊右鍵選擇屬性選擇高級(jí)環(huán)境變量path。第11頁(yè)圖 1-4系統(tǒng)環(huán)境變量的配置在 path 后面加上 c:j2sdkbin;c:j2sdk 是安裝 JDK 的路徑,如果記不清楚了,可回去看一下圖 1-3。注意:在這里使用的是 windows 2000 操作系統(tǒng),至于其他的操作系統(tǒng),如 windows98在設(shè)置環(huán)境變量的時(shí)與 windo

26、ws2000 的配置有許多不同,如果讀者感興趣,可以去查閱其他的資料。第12頁(yè)圖 1-5添加環(huán)境變量這樣就可以在任何目錄下使用 javac 和 java 這兩個(gè)命令了。1.6編寫(xiě)第一個(gè) Java 程序說(shuō)了這么多,現(xiàn)在就自己來(lái)動(dòng)手編寫(xiě)一個(gè) Java 的程序來(lái)親自感受一下 Java 語(yǔ)言的基本形式。需要說(shuō)明的是,JAVA 程序分為兩種形式:一種是網(wǎng)頁(yè)上使用的 Applet程序(Java 小程序),另一種是 Appliction 程序(即:Java 應(yīng)用程序),本書(shū)主要講解的是 Java Application 程序。第13頁(yè)范例:Hello.java01 public class Hello02

27、03 / 是程序的起點(diǎn),所有程序由此開(kāi)始運(yùn)行04 public static void main(String args)05 06 / 此語(yǔ)句表示向屏幕上打印Hello World !字符串07 System.out.println(Hello World !);08 09 將上面的程序保存為 HelloCareers.java 文件,并在命令行中輸入 javac Hello.java,沒(méi)有錯(cuò)誤后輸入 java Hello。輸出結(jié)果:Hello World!程序說(shuō)明:在所有的 Java Application 中,所有程序都是從 public static void main(String

28、args),開(kāi)始運(yùn)行的,剛接觸的讀者可能會(huì)覺(jué)得有些難記,在后面的章節(jié)中會(huì)詳細(xì)給讀者講解main 方法的各個(gè)組成部分。上面的程序如果暫時(shí)不明白也沒(méi)有關(guān)系,讀者只要將程序一點(diǎn)一點(diǎn)都敲下來(lái),之后按照步驟編譯、執(zhí)行,就可以了,在這里只是讓讀者對(duì) Java Application 程序有一個(gè)初步印象,因?yàn)橐院笏械膬?nèi)容講解的都將圍繞 Java Application 程序進(jìn)行。1.7classpath 的指定在 java 中可以使用 set classpath 命令指定 java 類(lèi)的執(zhí)行路徑。下面通過(guò)一個(gè)實(shí)驗(yàn)來(lái)了解 classpath 的作用,假設(shè)這里的 Hello.class 類(lèi)位于 c:盤(pán)下。第1

29、4頁(yè)在 D 盤(pán)下的命令行窗口執(zhí)行下面的指令:set classpath=c:之后在 D 盤(pán)根目錄下執(zhí)行:java Hello,如下圖所示:圖 1-6由上面的輸出結(jié)果可以發(fā)現(xiàn),雖然在 D 盤(pán)中并沒(méi)有 Hello.class 文件,但是卻也可以用 java Hello 執(zhí)行 Hello.class 文件,之所以會(huì)有這種結(jié)果,就是因?yàn)樵?D 盤(pán)中使用set classpath 命令,將類(lèi)的查找路徑指向了 C 盤(pán),所以在運(yùn)行時(shí),會(huì)從 C 盤(pán)下開(kāi)始查找。小提示:可能有些讀者在按照上述的方法操作時(shí),發(fā)現(xiàn)并不好用,這里要告訴讀者的是,在設(shè)置 classpath 時(shí),最好將 classpath 指向當(dāng)前目錄,

30、即:所有的 class 文件都從當(dāng)前文件夾中開(kāi)始查找:set classpath=.第15頁(yè)本章摘要:1、 Java 程序比較特殊,它必須先經(jīng)過(guò)編譯,然后再利用解釋的方式來(lái)運(yùn)行。2、 Byte-codes 最大的好處是可越平臺(tái)運(yùn)行,可讓“一次編寫(xiě),處處運(yùn)行”成為可能。3、 使用 classpath 可以指定 class 的運(yùn)行路徑。第16頁(yè)第2章簡(jiǎn)單的 Java 程序從本章開(kāi)始,就要正式學(xué)習(xí) Java 語(yǔ)言的程序設(shè)計(jì),除了認(rèn)識(shí)程序的架構(gòu)外,本章還介紹了修飾符、關(guān)鍵字以及一些基本的數(shù)據(jù)類(lèi)型。通過(guò)簡(jiǎn)單的范例,讓讀者了解到檢測(cè)與提高程序可讀性的方法,以培養(yǎng)讀者正確的程序編寫(xiě)觀念與習(xí)慣。2.1一個(gè)簡(jiǎn)單

31、的例子首先來(lái)看一個(gè)簡(jiǎn)單的 Java 程序。在介紹程序的內(nèi)容之前,先簡(jiǎn)單回顧一下第一章講解的例子,之后再來(lái)看下面這個(gè)程序,試試看是否看得出它是在做哪些事情!范例:TestJava2_1.java01 / TestJava2_1.java,java 的簡(jiǎn)單范例02 public class TestJava2_103 04 public static void main(String args)05 06 int num ; / 聲明一個(gè)整型變量 num07 num = 3 ; / 將整型變量賦值為 308 / 輸出字符串,這里用+ 號(hào)連接變量09 System.out.println(這是數(shù)字

32、+num);10 System.out.println(我有 +num+ 本書(shū)!);11 12 輸出結(jié)果:這是數(shù)字 3我有 3 本書(shū)!如果現(xiàn)在看不懂上面的這個(gè)程序也沒(méi)有關(guān)系,先將它敲進(jìn) Java 編輯器里,將它存盤(pán)、編輯、運(yùn)行,就可以看到上面的輸出結(jié)果。第17頁(yè)從上面的輸出結(jié)果中可以看出 System.out.println()的作用,就是輸出括號(hào)內(nèi)所包含的文字,至于 public、class、static、void 這些關(guān)鍵字的意思,將在以后的章節(jié)中再做更深入一層的探討。程序說(shuō)明:1、 第 1 行為程序的注釋?zhuān)琂ava 語(yǔ)言的注釋是以“/ /”標(biāo)志開(kāi)始的,注釋有助于對(duì)程序的閱讀與檢測(cè),被注釋

33、的內(nèi)容在編譯時(shí)不會(huì)被執(zhí)行。2、 第 2 行 public class TestJava2_1 中的 public 與 class 是 Java 的關(guān)鍵字,class 為“類(lèi)”的意思,后面接上類(lèi)名稱(chēng),在本程序中取名為 TestJava2_1。public 則是用來(lái)表示該類(lèi)為公有,也就是在整個(gè)程序里都可以訪(fǎng)問(wèn)到它。需要注意的是,如果將一個(gè)類(lèi)聲明成 public,則也要將文件名稱(chēng)取成和這個(gè)類(lèi)一樣的名稱(chēng),如圖 2-1 所示。本例中的文件名為 TestJava2_1.java,而 public 之后所接的類(lèi)名稱(chēng)也為 TestJava2_1。也就是說(shuō),在一個(gè) Java 文件里,最多只能有一個(gè) public

34、 類(lèi),否則.java 的文件便無(wú)法命名。圖 2-1如果將類(lèi)聲明成 public,則也要將文件名稱(chēng)取成和這個(gè)類(lèi)一樣的名稱(chēng)3、 第 4 行 public static void main(String args)為程序運(yùn)行的起點(diǎn)。第 410 行的功能類(lèi)似于一般程序語(yǔ)言中的函數(shù)(function),但在 Java 中稱(chēng)之為 method(方法)。因此 C 語(yǔ)言里的 main()函數(shù)(主函數(shù)),在 Java 中則被稱(chēng)為 main() method(主方法)。4、 main() method 的主體(body)從第 5 行的左大括號(hào)“”到第 11 行的右大括號(hào)“”第18頁(yè)為止。每一個(gè)獨(dú)立的 Java 程

35、序一定要有 main() method 才能運(yùn)行,因?yàn)樗浅绦蜷_(kāi)始運(yùn)行的起點(diǎn)。5、 第 6 行“int num;”的目的是聲明 num 為一個(gè)整數(shù)類(lèi)型的變量。在使用變量之前必須先聲明其類(lèi)型。6、 第 7 行“num=3;”為一賦值語(yǔ)句,即把整數(shù) 2 賦給存放整數(shù)的變量 num。7、 第 8 行的語(yǔ)句為:System.out.println(這是數(shù)字 +num);程序運(yùn)行時(shí)會(huì)在顯示器上輸出引號(hào)(”)內(nèi)所包含的內(nèi)容。包括“這是數(shù)字”和整數(shù)變量 num 所存放的值兩部分內(nèi)容。8、 System.out 是指標(biāo)準(zhǔn)輸出,通常與計(jì)算機(jī)的接口設(shè)備有關(guān),如打印機(jī)、顯示器等。其后所續(xù)的文字 println,是由

36、 print 與 line 所組成的,意思是將后面括號(hào)中的內(nèi)容打印在標(biāo)準(zhǔn)輸出設(shè)備顯示器上。因此第 8 行的語(yǔ)句執(zhí)行完后會(huì)換行,也就是把光標(biāo)移到下一行的開(kāi)頭繼續(xù)輸出。讀者可以把 System.out.println(),改成System.out.print(),看一下?lián)Q行與不換行的區(qū)別。9、 第 10 行的右大括號(hào)則告訴編譯器 main() method 到這兒結(jié)束。10、第 11 行的右大括號(hào)則告訴編譯器 class TestJava2_1 到這兒結(jié)束。這里只是簡(jiǎn)單的介紹了一下 TestJava2_1 這個(gè)程序,相信讀者已經(jīng)對(duì) Java 語(yǔ)言有了初步的了解。TestJava2_1 程序雖然很短

37、,卻是一個(gè)相當(dāng)完整的 Java 程序!在后面的章節(jié)中,將會(huì)對(duì) Java 語(yǔ)言的細(xì)節(jié)部分,做詳細(xì)的討論。2.2簡(jiǎn)單的 Java 程序解析本節(jié)將仔細(xì)探討 Java 語(yǔ)言的一些基本規(guī)則及用法。第19頁(yè)2.2.1類(lèi)(class)Java 程序是由類(lèi)(class)所組成,至于類(lèi)的概念在以后會(huì)有詳細(xì)講解,讀者只要先記住所有的 Java 程序都是由類(lèi)組成的就可以了。下面的程序片段即為定義類(lèi)的典型范例:public class Test/ 定義 public 類(lèi) Test上面的程序定義了一個(gè)新的 public 類(lèi) Test,這個(gè)類(lèi)的原始程序的文件名稱(chēng)應(yīng)取名為 Test.java。類(lèi) Test 的范圍由一對(duì)大括

38、號(hào)所包含。public 是 Java 的關(guān)鍵字,指的是對(duì)于類(lèi)的訪(fǎng)問(wèn)方式為公有。需要讀者注意的是,由于 Java 程序是由類(lèi)所組成,因此在完整的 Java 程序里,至少需要有一個(gè)類(lèi)。此外,本書(shū)曾在前面提到過(guò)在 Java 程序中,其原始程序的文件名不能隨意命名,必須和 public 類(lèi)名稱(chēng)一樣,因此在一個(gè)獨(dú)立的原始程序里,只能有一個(gè) public 類(lèi),卻可以有許多 non-public 類(lèi)。此外,若是在一個(gè) Java 程序中沒(méi)有一個(gè)類(lèi)是 public,那么該 Java 程序的文件名就可以隨意命名了。2.2.2大括號(hào)、段及主體將類(lèi)名稱(chēng)定出之后,就可以開(kāi)始編寫(xiě)類(lèi)的內(nèi)容。左大括號(hào)“”為類(lèi)的主體開(kāi)始標(biāo)記,

39、而整個(gè)類(lèi)的主體至右大括號(hào)“”結(jié)束。每個(gè)命令語(yǔ)句結(jié)束時(shí),必須以分號(hào)“;”做結(jié)尾。當(dāng)某個(gè)命令的語(yǔ)句不只一行時(shí),必須以一對(duì)大括號(hào)“”將這些語(yǔ)句包括起來(lái),形成一個(gè)程序段(segment)或是塊(block)。再以一個(gè)簡(jiǎn)單的程序?yàn)槔齺?lái)說(shuō)明什么是段與主體。若是暫時(shí)看不懂 TestJava2_2第20頁(yè)這個(gè)程序,也不用擔(dān)心,慢慢的都會(huì)講到該程序中所用到的命令。在下面的程序中,可以看到 main() method 的主體以左右大括號(hào)包圍起來(lái);for 循環(huán)中的語(yǔ)句不只一行,所以使用左右大括號(hào)將屬于 for 循環(huán)的段內(nèi)容包圍起來(lái);整個(gè)程序語(yǔ)句的內(nèi)容又被第 3與第 13 行的左右大括號(hào)包圍,這個(gè)塊屬于 public

40、 類(lèi) TestJava2_2 所有。此外,應(yīng)該注意到每個(gè)語(yǔ)句結(jié)束時(shí),都是以分號(hào)作為結(jié)尾。范例:TestJava2_2.java2.2.3程序運(yùn)行的起始點(diǎn) main() methodJava 程序是由一個(gè)或一個(gè)以上的類(lèi)組合而成,程序起始的主體也是被包含在類(lèi)之中。這個(gè)起始的地方稱(chēng)為 main(),用左右大括號(hào)將屬于 main()段內(nèi)容包圍起來(lái),稱(chēng)之第21頁(yè)為 method(方法)。main()方法為程序的主方法,在一個(gè) Java 程序中有且只能有一個(gè) main()方法,它是程序運(yùn)行的開(kāi)端,通??吹降?main() method 如下面的語(yǔ)句片段所示:public static void main(

41、String args)/ main() method,主程序開(kāi)始如前一節(jié)所述,main() method 之前必須加上 public static void 這三個(gè)標(biāo)識(shí)符。public 代表 main()公有的 method;static 表示 main()在沒(méi)有創(chuàng)建類(lèi)對(duì)象的情況下,仍然可以被運(yùn)行;void 則表示 main()方法沒(méi)有返回值。Main 后的括號(hào)()中的參數(shù) String args表示運(yùn)行該程序時(shí)所需要的參數(shù),這是固定的用法,如果現(xiàn)在不了解也沒(méi)有關(guān)系,在以后的章節(jié)中會(huì)一一介紹。2.2.4Java 程序的注釋為程序添加注釋可以用來(lái)解釋程序的某些語(yǔ)句的作用和功能,提高程序的可讀性

42、。也可以使用注釋在原程序中插入設(shè)計(jì)者的個(gè)人信息。此外,還可以用程序注釋來(lái)暫時(shí)屏蔽某些程序語(yǔ)句,讓編譯器暫時(shí)不要處理這部分語(yǔ)句,等到需要處理的時(shí)候,只需把注釋標(biāo)記取消就可以了,Java 里的注釋根據(jù)不同的用途分為三種類(lèi)型:?jiǎn)涡凶⑨尪嘈凶⑨屛臋n注釋單行注釋?zhuān)褪窃谧⑨寖?nèi)容前面加雙斜線(xiàn)(/),Java 編譯器會(huì)忽略掉這部分信息。如下所示:int num ;/ 定義一個(gè)整數(shù)多行注釋?zhuān)褪窃谧⑨寖?nèi)容前面以單斜線(xiàn)加一個(gè)星形標(biāo)記(/*)開(kāi)頭,并在注釋內(nèi)容末尾以一個(gè)星形標(biāo)記加單斜線(xiàn)(*/)結(jié)束。當(dāng)注釋內(nèi)容超過(guò)一行時(shí)一般使用這種第22頁(yè)方法,如下所示:/*int c = 10 ;int x = 5 ;*/文檔注

43、釋?zhuān)且詥涡本€(xiàn)加兩個(gè)星形標(biāo)記(/*)開(kāi)頭,并以一個(gè)星形標(biāo)記加單斜線(xiàn)(*/)結(jié)束。用這種方法注釋的內(nèi)容會(huì)被解釋成程序的正式文檔,并能包含進(jìn)如 javadoc之類(lèi)的工具生成的文檔里,用以說(shuō)明該程序的層次結(jié)構(gòu)及其方法。2.2.5Java 中的標(biāo)識(shí)符Java 中的包、類(lèi)、方法、參數(shù)和變量的名字,可由任意順序的大小寫(xiě)字母、數(shù)字、下劃線(xiàn)(_)和美元符號(hào)($)組成,但標(biāo)識(shí)符不能以數(shù)字開(kāi)頭,不能是 Java 中的保留關(guān)鍵字。下面是合法的標(biāo)識(shí)符:yournameyour_name_yourname$yourname下面是非法的標(biāo)識(shí)符:class67.9Hello Careers!小提示:一些剛接觸編程語(yǔ)言的讀者

44、可能會(huì)覺(jué)得記住上面的規(guī)則很麻煩,所以在這里提醒讀者,標(biāo)識(shí)符最好永遠(yuǎn)用字母開(kāi)頭,而且盡量不要包含其他的符號(hào)。第23頁(yè)2.2.6Java 的關(guān)鍵字和其他語(yǔ)言一樣,Java 中也有許多保留關(guān)鍵字,如 public、static 等,這些保留關(guān)鍵字不能當(dāng)作標(biāo)識(shí)符使用。下面列出了 Java 中的保留關(guān)鍵字,這些關(guān)鍵字并不需要讀者去強(qiáng)記,因?yàn)橐坏┦褂昧诉@些關(guān)鍵字做標(biāo)識(shí)符時(shí),編輯器會(huì)自動(dòng)提示錯(cuò)誤。Java 中的保留關(guān)鍵字:abstractcharelseforinterfaceprivatebooleanclassextendiflongprotectedbreakcontinuefalseimplementnativepublicbytedefaultfinalimportnewreturncasedofinallyinstanceofnullshortcatchdoublefloatintpackagestaticsynchronized superthisthrowthrowstransienttruetryvoidvolatilewhile要特別注意的是,雖然 goto、const 在 Java

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論