- Java軟件開發(fā)基礎(chǔ)
- 姚駿屏 張紅實(shí)主編
- 10097字
- 2019-01-01 07:17:03
第一部分 任務(wù)驅(qū)動(dòng)課程模塊
第1章 熟悉Java開發(fā)環(huán)境
驅(qū)動(dòng)項(xiàng)目——我的第一個(gè)Java程序
1.1 搭建Java開發(fā)環(huán)境
工作目標(biāo)
本節(jié)你將學(xué)習(xí):
● Java的歷史、特色和運(yùn)行機(jī)制;
● JDK的安裝與環(huán)境變量的配置。
工作描述
Java開發(fā)環(huán)境搭建,包括了解Java的發(fā)展歷史和Java的三個(gè)版本、JDK的下載、JDK的安裝和環(huán)境變量的配置。
工作分解-理論闡述
1.1.1 Java的由來與特點(diǎn)
Java是由美國Sun公司開發(fā)的新一代面向?qū)ο缶幊陶Z言。它的底層由C++語言開發(fā),在與網(wǎng)絡(luò)的融合中,顯現(xiàn)了強(qiáng)大生命力和廣闊的前景。Java的語法簡練,比較容易學(xué)習(xí)和掌握,使用它可在各種不同機(jī)器、不同操作平臺(tái)的網(wǎng)絡(luò)環(huán)境中開發(fā)軟件。
1.Java的由來
SUN公司在1991年準(zhǔn)備開發(fā)一個(gè)機(jī)頂盒的項(xiàng)目,能夠?qū)⒂脩舻恼?qǐng)求發(fā)送到電視臺(tái),電視臺(tái)再將節(jié)目發(fā)送給用戶,實(shí)現(xiàn)點(diǎn)播的功能。
這個(gè)機(jī)頂盒能夠轉(zhuǎn)發(fā)用戶的請(qǐng)求,那么這里面就應(yīng)該有一個(gè)芯片,小組考慮到開發(fā)出來需要2~3年的時(shí)間,要是到時(shí)候沒有芯片了怎么辦?這個(gè)問題是IBM在芯片8096上引起廣大開發(fā)商重視的。IBM的51芯片曾經(jīng)取得了很大的成功,后來IBM開發(fā)了16位的8096芯片,性能比51芯片更優(yōu)越,于是許多公司開始開發(fā)基于8096的產(chǎn)品,但當(dāng)各大研發(fā)公司萬事俱備就等IBM的8096芯片時(shí),IBM突然說不再生產(chǎn)這種芯片了,使這些公司損失很大。以后研發(fā)時(shí)都把這個(gè)問題列在開發(fā)產(chǎn)品時(shí)必須考慮的風(fēng)險(xiǎn)中。James Gosling提出了一個(gè)建議:開發(fā)一個(gè)解釋器,設(shè)計(jì)一種語言,而解釋器可以根據(jù)不同的芯片設(shè)計(jì)執(zhí)行這種語言。這樣就使得開發(fā)工作的開始就不用與硬件打交道,這種解釋器能夠在SUN的Solaris平臺(tái)上運(yùn)行,等開發(fā)完成后,針對(duì)要使用的芯片設(shè)計(jì)一種解釋器就可以了。三年之后,也就是1994年,這種機(jī)頂盒設(shè)計(jì)出來了,而那種語言取名為OAK(橡樹,別墅旁邊有一棵橡樹,James Gosling每天早上起來都能看到它,所以命名OAK)。但等到SUN公司向電視臺(tái)推銷這種產(chǎn)品的時(shí)候,電視臺(tái)卻不認(rèn)可這種裝置,SUN的這個(gè)項(xiàng)目只能以失敗告終。后來,James Gosling想到,既然HTML可以在各種瀏覽器里運(yùn)行,那么可不可以把這種語言嵌入瀏覽器里,開發(fā)一種新的瀏覽器,不僅能顯示靜態(tài)的HTML頁面,還能夠執(zhí)行程序。
1995年,SUN公司和好萊塢開展了一個(gè)技術(shù)交流會(huì),借以宣傳公司的產(chǎn)品。James Gosling帶著他們的OAK系統(tǒng)來到了技術(shù)交流會(huì),但不能再用OAK這個(gè)名字了。因?yàn)镺AK已經(jīng)被一家半導(dǎo)體公司注冊(cè),所以只能換名。James Gosling又四處觀望尋找靈感,他看到了一個(gè)泡咖啡的杯子,杯子上印著Java(印度尼西亞的爪哇島,以生產(chǎn)咖啡著名),James Gosling就把這種語言改名為Java。Java語言在交流會(huì)上大獲成功。網(wǎng)景公司(一家著名的開發(fā)互聯(lián)網(wǎng)瀏覽器的公司)找到了SUN公司,想把Java語言嵌入到其Netspace瀏覽器中,而當(dāng)時(shí)Netspace瀏覽器在市場上占據(jù)了95%的份額(IE瀏覽器那時(shí)還是“小不點(diǎn)”)。1995年5月23日,SUN宣布Java語言正式誕生,自此,5月23日成了Java的生日,而項(xiàng)目組領(lǐng)導(dǎo)James Gosling就成了Java之父(見圖1-1)。

圖1-1 Java之父James Gosling
Java語言一推出,便以其在網(wǎng)絡(luò)編程上的獨(dú)特優(yōu)勢(shì)贏得許多著名公司的青睞,得到Netscape,IBM,Microsoft,Oracle等大公司的支持,Java迅速得到推廣。1996年,Sun公司成立了維護(hù)Java的Javasoft分公司,Java圖標(biāo)如圖1-2所示。

圖1-2 Java圖標(biāo)
隨著Java技術(shù)的不斷發(fā)展,它根據(jù)市場進(jìn)一步細(xì)分為:針對(duì)企業(yè)應(yīng)用的J2EE(Java 2 Enterprise Edition)企業(yè)版、針對(duì)普通桌面應(yīng)用軟件的J2SE(Java 2 Standard Edition)標(biāo)準(zhǔn)版和針對(duì)嵌入式設(shè)備及消費(fèi)類電器的J2ME(Java 2 Micro Edition)微型版三個(gè)版本。
2.Java語言的特點(diǎn)
Java語言是一種高級(jí)的(High Level)、通用的(General Purpose)、面向?qū)ο蟮模∣bject Oriented)程序設(shè)計(jì)語言。其語法與C或C++類似,但在組織結(jié)構(gòu)上卻截然不同。它是一種完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,其程序的基本處理單位是類。不僅如此,在設(shè)計(jì)Java的時(shí)候也傾向于把它設(shè)計(jì)成一種具有生產(chǎn)力的語言,而不只是研究性的語言,所以在學(xué)習(xí)運(yùn)用Java語言的時(shí)候,能很快地感受到它的便利與強(qiáng)大功能。
Java是一種簡單的、面向?qū)ο蟮摹⒎植际教幚淼摹⒔忉尩摹⒔训摹踩摹⒔Y(jié)構(gòu)中立的、可移植的、高性能的、多線程的、動(dòng)態(tài)的語言。下面分別介紹這些特點(diǎn)。
1)簡單的特性
Java最初是為對(duì)家用電器進(jìn)行集成控制而設(shè)計(jì)的一種語言,因此它必須簡單明了。Java語言的簡單性主要體現(xiàn)在以下幾方面。
● 系統(tǒng)精簡但功能齊備。對(duì)Java而言,其基本解釋器只有40KB左右,加上標(biāo)準(zhǔn)類庫和線程的支持也只有210KB左右,可謂短小精悍,但功能毫不遜色,對(duì)面向?qū)ο蟆⒍嗑€程和多媒體都提供了全面的支持。
● Java的風(fēng)格類似于C++,因而對(duì)于C++程序員而言非常容易掌握J(rèn)ava技術(shù)。
● Java摒棄了C++中容易引發(fā)程序錯(cuò)誤的地方,如指針操作和內(nèi)存管理等。
● Java提供了豐富的類庫。
2)面向?qū)ο蟮奶匦?/p>
面向?qū)ο罂梢哉f是Java最重要的特性。Java語言完全是面向?qū)ο蟮模恢С诸愃艭語言那樣的面向過程的程序設(shè)計(jì)技術(shù)。
3)分布式處理的特性
Java提供了廣泛的類庫,可處理像HTTP和FTP這樣的TCP/IP。Java應(yīng)用程序可通過一個(gè)特定的URL來打開并訪問網(wǎng)絡(luò)資源對(duì)象,就像訪問本地文件系統(tǒng)那樣簡單。
4)健壯特性
Java在編譯和運(yùn)行程序時(shí)都要對(duì)可能出現(xiàn)的問題進(jìn)行檢查。類型檢查可以幫助檢查出許多開發(fā)早期出現(xiàn)的錯(cuò)誤。Java提供自動(dòng)垃圾收集機(jī)制來進(jìn)行內(nèi)存管理,減小了內(nèi)存出錯(cuò)的可能性。Java提供面向?qū)ο蟮漠惓L幚頇C(jī)制,在編譯時(shí)能進(jìn)行空指針檢測(cè)、數(shù)組邊界檢測(cè)、異常出口字節(jié)代碼校驗(yàn)等。
5)結(jié)構(gòu)中立的特性
為了使Java能獨(dú)立于不同的網(wǎng)絡(luò)中的平臺(tái),Java將它的程序編譯成一種結(jié)構(gòu)中立的中間文件格式。有Java運(yùn)行系統(tǒng)的機(jī)器都能執(zhí)行這種中間代碼。Java源程序被編譯成一種高層次的與機(jī)器無關(guān)的字節(jié)代碼,只要安裝了Java運(yùn)行系統(tǒng),Java程序就可以在任意處理器上運(yùn)行。
6)安全特性
Java的安全性可從以下四個(gè)方面得到保證。
(1)Java語言自身提供的安全。在Java語言里,像指針和釋放內(nèi)存等C++的功能被封裝,避免了非法內(nèi)存操作。
(2)編譯器提供的安全。當(dāng)Java用來創(chuàng)建瀏覽器時(shí),語言功能和一些瀏覽器本身提供的功能結(jié)合起來,使它更安全。Java代碼在機(jī)器上執(zhí)行前,要經(jīng)過很多次檢測(cè)。它需要通過代碼校驗(yàn)、檢查代碼段的格式、檢測(cè)指針操作、檢測(cè)對(duì)象操作是否過分及是否正試圖改變一個(gè)對(duì)象的類型等測(cè)試。
(3)字節(jié)碼校驗(yàn)。字節(jié)碼校驗(yàn)器對(duì)程序中的代碼進(jìn)行四趟掃描,如果字節(jié)代碼通過代碼校驗(yàn)沒有返回錯(cuò)誤,代碼沒有堆棧上溢出和下溢出,所有操作代碼參數(shù)類型都是正確的,并且沒有發(fā)生非法數(shù)據(jù)轉(zhuǎn)換(如將整數(shù)轉(zhuǎn)換成指針),訪問對(duì)象操作是合法的,等等,才允許代碼運(yùn)行。
(4)類裝載。由類裝載器把一個(gè)類裝入Java虛擬機(jī)中,類裝載將本機(jī)中的類與網(wǎng)絡(luò)資源類的名稱分開,來保持安全性。因?yàn)檎{(diào)入類時(shí)總要經(jīng)過檢查校驗(yàn),這樣避免了特洛伊木馬現(xiàn)象的出現(xiàn)。
7)可移植的特性
與體系結(jié)構(gòu)無關(guān)的特性使Java應(yīng)用程序可以在配備了Java解釋器和運(yùn)行環(huán)境的任何計(jì)算機(jī)系統(tǒng)上運(yùn)行,這成為Java應(yīng)用軟件便于移植的良好基礎(chǔ)。通過定義獨(dú)立于平臺(tái)的基本數(shù)據(jù)類型及其運(yùn)算,Java數(shù)據(jù)得以在任何硬件平臺(tái)上保持一致。另外,Java的編譯器由Java語言實(shí)現(xiàn),解釋器由標(biāo)準(zhǔn)C語言實(shí)現(xiàn),因此Java本身也具有可移植性。
8)解釋的特性
Java編譯器將Java源文件編譯生成類文件,擴(kuò)展名為.class,類文件可通過Java命令加載、解釋和執(zhí)行,將Java字節(jié)碼轉(zhuǎn)換為機(jī)器可執(zhí)行代碼。Java解釋器(運(yùn)行系統(tǒng))能直接運(yùn)行目標(biāo)代碼指令。
9)高性能的特性
如果解釋器速度不慢,Java可以在運(yùn)行時(shí)直接將目標(biāo)代碼翻譯成機(jī)器指令。Sun用直接解釋器一秒鐘可調(diào)用300000個(gè)進(jìn)程,翻譯目標(biāo)代碼的速度與C/C++的性能沒什么區(qū)別。使用“實(shí)時(shí)(Just In Time)”編譯器,也稱為JIT編譯器,可以提高Java代碼的執(zhí)行速度。Sun公司在Java2發(fā)行版中提供了JIT編譯器,JIT編譯器是Java虛擬機(jī)的一部分。JIT的主要用途是將字節(jié)碼指令集轉(zhuǎn)換為針對(duì)某一特定微處理器的機(jī)器代碼指令。
10)多線程的特性
Java語言內(nèi)置多線程的功能,使得在一個(gè)程序里可同時(shí)執(zhí)行多個(gè)小任務(wù)。多線程帶來的更大的好處是更好的交互性能和實(shí)時(shí)控制性能。
11)動(dòng)態(tài)的特性
Java的動(dòng)態(tài)特性是其面向?qū)ο笤O(shè)計(jì)方法的發(fā)展。它允許程序動(dòng)態(tài)地裝入運(yùn)行時(shí)所需要的類,這是C++語言無法實(shí)現(xiàn)的。
Java自身的設(shè)計(jì)使它適用于一個(gè)不斷發(fā)展的環(huán)境。在Java類庫中可以自由加入新的方法和實(shí)例變量而不會(huì)影響用戶程序的執(zhí)行。
3.Java的運(yùn)行機(jī)制
1)Java虛擬機(jī)
Java虛擬機(jī)(JVM)是軟件模擬的計(jì)算機(jī),可以在任何處理器上(無論是在計(jì)算機(jī)中還是在其他電子設(shè)備中)安全并兼容地執(zhí)行保存在.class文件中的字節(jié)碼。.class文件有時(shí)也稱為字節(jié)碼文件。
Java程序的跨平臺(tái)性主要是指字節(jié)碼文件可以在任何具有Java虛擬機(jī)的計(jì)算機(jī)或其他電子設(shè)備上運(yùn)行,Java虛擬機(jī)中的Java解釋器負(fù)責(zé)將字節(jié)碼文件解釋成特定的機(jī)器碼進(jìn)行運(yùn)行。Java源程序需要通過編譯器編譯成為.class文件(字節(jié)碼文件),Java程序的編譯和執(zhí)行過程如圖1-3所示。

圖1-3 Java程序的編譯和執(zhí)行過程
注意:Java虛擬機(jī)的建立需要針對(duì)不同的軟、硬件平臺(tái)做專門的實(shí)現(xiàn),既要考慮處理器的型號(hào),也要考慮操作系統(tǒng)的種類。Java的平臺(tái)性如圖1-4所示,目前在SPARC結(jié)構(gòu)、X86結(jié)構(gòu)、MIPS和PPC等嵌入式處理芯片上,在UNIX,Linux,Windows和部分實(shí)時(shí)操作系統(tǒng)上都有其不同的Java虛擬機(jī)。

圖1-4 Java的平臺(tái)性
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í)候把不再使用的對(duì)象內(nèi)存釋放掉,但是這種人為的管理內(nèi)存釋放的方法卻往往由于程序員的疏忽而致使內(nèi)存無法回收,同時(shí)也增加了程序員的工作量。而在Java運(yùn)行環(huán)境中,始終存在著一個(gè)系統(tǒng)級(jí)的線程,專門跟蹤內(nèi)存的使用情況,定期檢測(cè)出不再使用的內(nèi)存并進(jìn)行自動(dòng)回收,避免了內(nèi)存的泄漏,也減輕了程序員的工作量。
但是Java的垃圾內(nèi)存自動(dòng)回收機(jī)制也存在缺點(diǎn),那就是由于始終存在這個(gè)系統(tǒng)級(jí)的線程在運(yùn)行,將會(huì)影響到Java應(yīng)用的運(yùn)行性能。
1.1.2 Java開發(fā)環(huán)境與開發(fā)工具包
Java開發(fā)工具包(JDK,Java Development Kit)是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境(JRE,Java Runtime Envirnment)、Java工具和Java基礎(chǔ)的類庫(rt.jar)。JDK是Sun Microsystems針對(duì)Java開發(fā)員的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的Java SDK(Software development kit)。不論什么Java應(yīng)用服務(wù)器,實(shí)質(zhì)都是內(nèi)置了某個(gè)版本的JDK。因此掌握J(rèn)DK是學(xué)好Java的第一步。最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,如IBM公司開發(fā)的JDK、BEA公司的Jrocket、GNU組織開發(fā)的JDK等。
1.Java SDK目前版本
J2SE(Java2標(biāo)準(zhǔn)版),提供了基礎(chǔ)Java開發(fā)工具、執(zhí)行環(huán)境與API(應(yīng)用程序接口)。
J2EE(Java2企業(yè)版),它是由Sun公司所提出的一組技術(shù)規(guī)格,規(guī)劃了企業(yè)用戶以Java2技術(shù)開發(fā)、分發(fā)、管理多層式應(yīng)用結(jié)構(gòu),一般用于Web程序開發(fā)。
J2ME(Java2微型版),適用于消費(fèi)性電子產(chǎn)品,提供嵌入式系統(tǒng)所使用的Java開發(fā)工具、執(zhí)行環(huán)境與API。
2.JDK目錄結(jié)構(gòu)
安裝好后的JDK目錄如圖1-5所示。

圖1-5 JDK目錄結(jié)構(gòu)
bin目錄:存放一些開發(fā)工具,這些開發(fā)工具能夠幫助開發(fā)、執(zhí)行、調(diào)試Java程序。
jar目錄:是Java2 SDK的運(yùn)行環(huán)境,包括虛擬機(jī)、類庫和其他支持Java程序運(yùn)行的文件。
lib目錄:包含開發(fā)工具所需要的附加類庫和支持文件。
demo目錄:包含帶有源文件的Java平臺(tái)的一些例子可供學(xué)習(xí),包括使用Swing、Java的基礎(chǔ)類和Java平臺(tái)調(diào)試結(jié)構(gòu)的例子。
include目錄:包含一些H頭文件,提供了開發(fā)接口給編程者使用。
src.zip文件:包括組成Java2核心的API的一些Java程序設(shè)計(jì)語言的源文件。這些源代碼只用來提供一些信息支持,以幫助開發(fā)者學(xué)習(xí)和使用。
工作分解-操作方案
1.JDK的下載。
2.JDK的安裝。
3.環(huán)境變量的配置JAVA_HOME、CLASSPATH、PATH。
工作實(shí)施
1.JDK的下載。
從Sun公司的網(wǎng)絡(luò)下載JDK。Sun公司的JDK版本升級(jí)速度快,我們應(yīng)該知道官方的最新版本JDK在哪里能夠下載。目前JDK版本是6.0(也許讀者讀到這里時(shí)又升級(jí)了),我們可在http://Java.sun.com官方網(wǎng)站下載。下載過程如下。
(1)先進(jìn)入Java.sun.com首頁,再單擊右側(cè)“popular Downloads”下的“Java SE”進(jìn)入下一頁面,如圖1-6所示。

圖1-6 官方網(wǎng)站下載
(2)進(jìn)入到Java SE下載頁面后,單擊“JDK6 Update 6”界面中的“Download”按鈕到下一頁,如圖1-7所示。

圖1-7 進(jìn)入到Java SE下載頁面
(3)進(jìn)入到“Java SE Development Kit 6u6 First Customer Ship”頁面后,在“Platform”右側(cè)的下拉列表框選中“Windows”;選中“I agree to the Java SE Development Kit 6 License Agreement”前面的復(fù)選框,然后單擊“Continue”按鈕繼續(xù),如圖1-8所示。

圖1-8 “Java SE Development Kit 6u6 First Customer Ship”頁面
(4)進(jìn)入到“Download Java SE Development Kit 6u6 First Customer Ship for Windows,Multi-language”頁面后,單擊“jdk-6u6-windows-i586-p.exe”即可實(shí)現(xiàn)下載,如圖1-9所示。

圖1-9 “Download Java SE Development Kit 6u6 First Customer Ship for Windows,Multi-language”頁面
2.JDK的安裝。
(1)運(yùn)行“jdk-6u6-windows-i586-p.exe”,打開JDK安裝程序。
(2)進(jìn)入許可證界面,單擊“接受”按鈕,如圖1-10所示。

圖1-10 JDK的安裝-接受許可
(3)進(jìn)入“自定義安裝”界面,單擊“更改”按鈕可以設(shè)定安裝路徑,一般情況下我們都默認(rèn)本安裝路徑并單擊“下一步”按鈕,如圖1-11所示。

圖1-11 JDK的安裝-自定義安裝
(4)程序進(jìn)入安裝界面,如圖1-12所示。

圖1-12 JDK的安裝-正在安裝
(5)程序安裝完畢后進(jìn)入“安裝完成”界面,單擊“完成”按鈕,結(jié)束安裝,如圖1-13所示。現(xiàn)在你可以在C:\Program Files\Java\jdk1.6.0下見到一些子目錄和一些文件,如有bin、lib、jre目錄等。

圖1-13 JDK的安裝-安裝完成
重要提示:
bin目錄下是一些常用的命令工具,lib下是一些常用的工具包,jre目錄下是一些運(yùn)行時(shí)環(huán)境文件。
3.環(huán)境變量的配置JAVA_HOME、CLASSPATH、PATH。
(1)單擊“我的電腦→屬性”進(jìn)入“系統(tǒng)屬性”對(duì)話框,選擇“高級(jí)”選項(xiàng)卡,單擊“環(huán)境變量”按鈕,如圖1-14所示。

圖1-14 配置環(huán)境變量-系統(tǒng)屬性
(2)彈出“環(huán)境變量”對(duì)話框,如圖1-15所示。

圖1-15 “環(huán)境變量”對(duì)話框
(3)添加JAVA_HOME環(huán)境變量,在“新建系統(tǒng)變量”窗體中的“系統(tǒng)變量”中單擊“新建”按鈕,彈出“新建系統(tǒng)變量”對(duì)話框,在“變量名”文本框中輸入“JAVA_HOME”,在“變量值”文本框中輸入JDK的安裝路徑“C:\Program Files\Java\jdk1.6.0”,如圖1-16所示。

圖1-16 新建系統(tǒng)變量JAVA_HOME
(4)添加CLASSPATH環(huán)境變量,在“新建系統(tǒng)變量”窗體中的“系統(tǒng)變量”中單擊“新建”按鈕,彈出“新建系統(tǒng)變量”對(duì)話框,在“變量名”本文框中輸入“CLASSPATH”,在變量值文本框中輸入“.;% JAVA_HOME %\lib\tools.jar”,如圖1-17所示。

圖1-17 新建系統(tǒng)變量CLASSPATH
注意:% JAVA_HOME %就是我們?cè)趫D1-16中創(chuàng)建的變量的使用。
(5)修改PATH環(huán)境變量配置,在“系統(tǒng)變量”窗體中找到Path變量,然后單擊“編輯”按鈕,保持原來的變量值不變,然后在后邊添加“;C:\Program Files\Java\jdk1.6.0\bin”。
1.2 使用文本編輯器開發(fā)HelloWorld程序
工作目標(biāo)
本節(jié)你將學(xué)習(xí):
● 驗(yàn)證JDK的安裝與環(huán)境變量的配置是否正確;
● 了解在dos命令行窗口個(gè)中編譯執(zhí)行Java程序的過程。
工作描述
使用文本編輯器編寫HelloWorld程序,然后在dos命令行窗口中編譯執(zhí)行HelloWorld程序,在執(zhí)行程序的過程中驗(yàn)證環(huán)境變量配置是否正確。
工作分解-理論闡述
1.2.1 Java開發(fā)工具簡介
在計(jì)算機(jī)開發(fā)語言的歷史中,從來沒有哪種語言像Java那樣受到如此眾多廠商的支持、有如此多的開發(fā)工具,Java菜鳥們?nèi)绯跞氪笥^園的劉姥姥,看花了眼,不知該如何選擇。的確,這些工具各有所長,沒有絕對(duì)完美的。本節(jié)簡要介紹常見的幾種Java開發(fā)工具的特點(diǎn),“管中窺豹”,希望能對(duì)大家有所幫助。
1.JDK(Java Development Kit,Java開發(fā)工具集)
從初學(xué)者角度來看,采用JDK開發(fā)Java程序能夠很快理解程序中各部分代碼之間的關(guān)系,有利于理解Java面向?qū)ο蟮脑O(shè)計(jì)思想。JDK的另一個(gè)顯著特點(diǎn)是隨著Java(J2EE、J2SE及J2ME)版本的升級(jí)而升級(jí)。但它的缺點(diǎn)也是非常明顯的,即從事大規(guī)模企業(yè)級(jí)Java應(yīng)用開發(fā)非常困難,不能進(jìn)行復(fù)雜的Java軟件開發(fā),也不利于團(tuán)體協(xié)同開發(fā)。
2.JCreator
JCreator是一個(gè)Java程序開發(fā)工具,也是一個(gè)Java集成開發(fā)環(huán)境(IDE)。無論開發(fā)Java應(yīng)用程序還是網(wǎng)頁上的Applet元件都難不倒它。與Sun公司所公布的JDK等文字模式開發(fā)工具相比,在功能上比較簡單,同時(shí)還允許使用者自定義操作窗口界面及無限undo/redo等功能。JCreator為用戶提供了相當(dāng)強(qiáng)大的功能。例如,項(xiàng)目管理功能,項(xiàng)目模板功能,可個(gè)性化設(shè)置語法高亮屬性、行數(shù)、類瀏覽器、標(biāo)簽文檔、多功能編繹器,向?qū)Чδ埽约巴耆勺远x的用戶界面。通過JCreator,不用激活主文檔就可以直接編繹或運(yùn)行Java程序。JCreator能自動(dòng)找到包含主函數(shù)的文件或包含Applet的HTML文件,然后它會(huì)運(yùn)行適當(dāng)?shù)墓ぞ摺T贘Creator中,可以通過一個(gè)批處理同時(shí)編繹多個(gè)項(xiàng)目。JCreator的設(shè)計(jì)接近Windows界面風(fēng)格,用戶對(duì)它的界面比較熟悉。其最大特點(diǎn)是與我們機(jī)器中所裝的JDK完美結(jié)合,是其他任何一款I(lǐng)DE所不能比擬的。它是一種初學(xué)者很容易上手的Java開發(fā)工具,缺點(diǎn)是只能進(jìn)行簡單的程序開發(fā),不能進(jìn)行企業(yè)J2EE的開發(fā)應(yīng)用。
3.Borland的JBuilder
JBuilder是Borland公司推出的Java集成開發(fā)環(huán)境,它能滿足很多方面的應(yīng)用需求,尤其是對(duì)于服務(wù)器及EJB開發(fā)者來說,JBuilder是非常實(shí)用的。JBuilder支持最新的Java技術(shù),非常有利于高效的團(tuán)隊(duì)開發(fā),JBuilder的集成開發(fā)環(huán)境非常靈活并具有可擴(kuò)展性,簡化了大型分散開發(fā)團(tuán)隊(duì)的源代碼的并發(fā)管理。
JBuilder是一個(gè)靈活開發(fā)的IDE架構(gòu),可以使用開發(fā)工具API將一些附加的或第三方工具緊密地集成到JBuilder環(huán)境中,擴(kuò)展IDE的功能。
它的最大缺點(diǎn)就是軟件收費(fèi),并且價(jià)格相對(duì)很高,在Eclipse這樣的免費(fèi)工具的打壓下,市場正在逐步萎縮。
4.Eclipse
Eclipse是一個(gè)非常優(yōu)秀的IDE,是IBM花了多年時(shí)間開發(fā)的基于Java的公開源代碼軟件,公開源代碼就代表著免費(fèi)。它是一個(gè)用于構(gòu)建集成Web和應(yīng)用程序開發(fā)工具的平臺(tái),本身不會(huì)提供大量的最終用戶功能,而是通過很多公開源代碼插件來快速開發(fā)的。
Eclipse被設(shè)計(jì)成可以在多個(gè)操作系統(tǒng)上運(yùn)行,因此可以省去開發(fā)者有時(shí)要把Windows應(yīng)用程序切換到Linux的操作,進(jìn)而簡化了整個(gè)開發(fā)過程。Eclipse的核心是動(dòng)態(tài)發(fā)現(xiàn)插件的體系結(jié)構(gòu)——在安裝插件時(shí)只需要把插件復(fù)制到插件目錄,重啟Eclipse就可以使用該插件。
5.NetBeans與Sun Java Studio 5
NetBeans是開放源碼的Java集成開發(fā)環(huán)境,是Sun開發(fā)的IDE。適用于各種客戶機(jī)和Web應(yīng)用。Sun Java Studio是Sun公司最新發(fā)布的商用全功能Java IDE,支持Solaris、Linux和Windows平臺(tái),適于創(chuàng)建和部署2層Java Web應(yīng)用和n層J2EE應(yīng)用的企業(yè)開發(fā)人員使用。
NetBeans是業(yè)界第一款支持創(chuàng)新型Java開發(fā)的開放源碼IDE。開發(fā)人員可以利用業(yè)界強(qiáng)大的開發(fā)工具來構(gòu)建桌面、Web或移動(dòng)應(yīng)用。同時(shí),通過NetBeans和開放的API的模塊化結(jié)構(gòu),第三方能夠非常輕松地?cái)U(kuò)展或集成NetBeans平臺(tái)。
NetBeans 3.5.1主要針對(duì)一般的Java軟件開發(fā)者,而Java One Studio 5則主要針對(duì)企業(yè)做網(wǎng)絡(luò)服務(wù)等應(yīng)用的開發(fā)者。Sun不久還將推出Project Rave,其目標(biāo)是幫助企業(yè)的開發(fā)者進(jìn)行軟件開發(fā)。
NetBeans 3.5.1版本與其他開發(fā)工具相比,最大區(qū)別在于其不僅能夠開發(fā)各種臺(tái)式機(jī)上的應(yīng)用,而且可以用來開發(fā)網(wǎng)絡(luò)服務(wù)方面的應(yīng)用,還可以開發(fā)基于J2ME的移動(dòng)設(shè)備上的應(yīng)用等。在NetBeans 3.5.1基礎(chǔ)上,Sun開發(fā)出了Java One Studio 5,為用戶提供了一個(gè)更加先進(jìn)的企業(yè)編程環(huán)境。
在新的Java One Studio 5里有一個(gè)應(yīng)用框架,開發(fā)者可以利用這些模塊快速開發(fā)自己在網(wǎng)絡(luò)服務(wù)方面的各種應(yīng)用程序。
工作分解-操作方案
1.在記事本中編寫代碼,并以HelloWorld.Java命名保存文件(如保存在D盤根目錄下)。
2.打開控制臺(tái)。
3.在控制臺(tái)中編譯源代碼。
4.在控制臺(tái)中運(yùn)行程序。
工作實(shí)施
1.在記事本中編寫代碼,并以HelloWorld.Java命名保存文件(如保存在D盤根目錄下)。
/* * 定義一個(gè)名叫HelloWorld的類 */ public class HelloWorld { public static void main(String[] args) {//主函數(shù),程序入口 System.out.println("Hello World"); //打印語句,括號(hào)里的字符串 } }
2.打開控制臺(tái)。
依次單擊:開始→程序→運(yùn)行→輸入cmd回車,即可進(jìn)入控制臺(tái)
3.在控制臺(tái)中編譯源代碼。
在控制臺(tái)中輸入:
Javac D:\HelloWorld.Java
注意:在做這一步的時(shí)候要注意文件名的大小寫一定要與實(shí)際文件名一致。
進(jìn)行編譯,編譯成功后將產(chǎn)生一個(gè)字節(jié)碼文件“HelloWorld.class”。
4.在控制臺(tái)中運(yùn)行程序。
在控制臺(tái)中輸入:
D: Java HelloWorld
運(yùn)行成功后將在控制臺(tái)窗口中顯示“HelloWorld”字樣,如果出現(xiàn)問題請(qǐng)重新檢查環(huán)境變量JAVA_HOME,PATH,CLASSPATH配置是否正確。
1.3 使用MyEclipse開發(fā)HelloWorld程序
工作目標(biāo)
本節(jié)你將學(xué)習(xí):
● 了解常用的集成開發(fā)環(huán)境及工具,熟悉MyEclipse;
● 使用集成開發(fā)工具M(jìn)yEclipse編寫、調(diào)試、運(yùn)行第一個(gè)Java程序。
工作描述
使用MyEclipse開發(fā)HelloWorld程序:在MyEclipse中編寫、調(diào)試、運(yùn)行程序,并在MyEclipse的控制臺(tái)窗口中查看運(yùn)行結(jié)果。
工作分解-理論闡述
1.3.1 MyEclipse的使用
下面以開發(fā)“HelloWorld”程序?yàn)槔M(jìn)行講解。
由于MyEclipse=Eclipse+更多的插件,因此,為方便使用,MyEclipse受到了越來越多的應(yīng)用(不過MyEclipse是要收費(fèi)的)。以后我們的開發(fā)都采用MyEclipse講解,所用版本是MyEclipse 6.0.1。
1.運(yùn)行MyEclipse開發(fā)工具
開始→程序→MyEclipse 6.0→MyEclipse 6.0.1,然后請(qǐng)稍等。
2.選擇工作目錄
啟動(dòng)MyEclipse 6.0.1后,出現(xiàn)工作目錄對(duì)話框,選擇工作目錄,如圖1-18所示。

圖1-18 選擇工作目錄
Workspace指明用戶的工作空間,如現(xiàn)在的工作空間在d:\myeclipse\workspace,即隨后開發(fā)的程序就放到此工作空間下。單擊“OK”按鈕,出現(xiàn)歡迎界面,如圖1-19所示。

圖1-19 歡迎界面
3.創(chuàng)建Java project工程
創(chuàng)建工程的過程如下。
單擊菜單欄中的File(文件)→New(新建)→Java Project(Java工程),如圖1-20所示。

圖1-20 創(chuàng)建工程菜單
在所彈出的對(duì)話框中的“Project name”文本框中輸入一個(gè)有意義的項(xiàng)目名,如輸入“HelloWorld”,其他不變,按“Finish”按鈕完成,這樣,一個(gè)Java工程就建好了,如圖1-21所示。

圖1-21 創(chuàng)建工程對(duì)話框
4.向工程中添加類
類是面向?qū)ο缶幊痰幕締卧?chuàng)建類的過程如下:
單擊菜單欄中的File→New→Class(類),如圖1-22所示。

圖1-22 創(chuàng)建類的菜單
在所彈出對(duì)話框中的“Name”文本框中輸入類的名字,類名如人名一樣有規(guī)則,我們一般用一些有意義的英文單詞表示,并且大寫首字母,這在今后還會(huì)講(這個(gè)類取名為HelloWorld)。然后按“Finish”按鈕,如圖1-23所示。

圖1-23 創(chuàng)建類對(duì)話框
注意:類的命名規(guī)則要求開頭的字母大寫,否則MyEclipse會(huì)在這里給出警告信息。
創(chuàng)建好類后,我們獲得了如下的類。其中main(String[] args)是主方法,是所有Java應(yīng)用程序運(yùn)行的起點(diǎn)。
public class Helloword { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub } }
改寫代碼如下:
public class Helloword { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Hello World"); } }
5.運(yùn)行程序
完成類的代碼編寫后,就可以編譯運(yùn)行程序了,選中要運(yùn)行的源程序(如HelloWorld),依次單擊Run→Run As→Java Application,如圖1-24所示。

圖1-24 編譯運(yùn)行程序的菜單
6.查看結(jié)果
界面下方的“Console”中輸出了“Hello World”,如圖1-25所示。

圖1-25 查看結(jié)果
1.3.2 MyEclipse的一些常用技巧
1.格式化源代碼
有時(shí)候手寫的代碼很亂,這時(shí)候可以先選中要格式化的代碼(如果不選擇則默認(rèn)為格式化當(dāng)前文件的所有代碼),通過選擇菜單Source→Format或在編輯器中右擊選擇菜單Source→Format或通過快捷鍵Ctrl+Shift+F來快速將代碼格式化成便于閱讀的格式。這個(gè)操作在MyEclipse中也可以格式化XML、JSP、HTML等源文件。
2.注釋和取消注釋
使用快捷鍵Ctrl+/可以將選中的代碼快速地添加或去掉兩個(gè)斜線(//)風(fēng)格的注釋。
3.設(shè)置顯示行號(hào)
在默認(rèn)情況下,Eclipse的代碼編輯器是不顯示行號(hào)的,要顯示它可以通過菜單Window→Preferences…來打開“Preferences設(shè)置”對(duì)話框,幾乎所有Eclipse的設(shè)置選項(xiàng)都可以在這里找到。要顯示行號(hào),可以展開節(jié)點(diǎn)General→Editors→Text Editors,在右側(cè)的設(shè)置中選中“Show line numbers”復(fù)選框即可,如圖1-26所示。

圖1-26 顯示行號(hào)
然而,最快的方式還是右擊編輯器隔條(最左側(cè)欄),在彈出的快捷菜單上選中“Show Line Numbers”復(fù)選框即可,之后就可以看到行號(hào)了,此過程如圖1-27所示。顯示了行號(hào)的編輯器如圖1-27所示。

圖1-27 通過編輯器隔條右鍵單擊顯示行號(hào)
4.設(shè)置斷點(diǎn)
雙擊源代碼的隔條可以切換是否在當(dāng)前行設(shè)置斷點(diǎn)(break point),斷點(diǎn)以小藍(lán)點(diǎn)的形式顯示,如圖1-28中左側(cè)所示。

圖1-28 斷點(diǎn)
重要提示:
斷點(diǎn)通常是為調(diào)試設(shè)計(jì)的,如果在調(diào)試技能不熟練的情況下請(qǐng)初學(xué)者不要隨意設(shè)置斷點(diǎn)。
5.導(dǎo)出項(xiàng)目
完成項(xiàng)目后(如HelloWorld項(xiàng)目),我們可以導(dǎo)出整個(gè)項(xiàng)目,以便我們可以在其他的地方繼續(xù)使用這個(gè)項(xiàng)目。具體步驟如下。
單擊菜單File→Export,然后在彈出的“Export”對(duì)話框中展開“General”目錄,選擇“Archive File”,接著單擊“Next”按鈕。然后在“To archive file”輸出框中選中要保存的文件名,一般寫成項(xiàng)目名.zip,然后單擊“Finish”按鈕即可導(dǎo)出當(dāng)前項(xiàng)目。還有一種方式,是手工打包,用WinRAR或WinZIP等工具都可以實(shí)現(xiàn),先打開項(xiàng)目所在目錄,接著就可以用所喜歡的工具來打包代碼目錄了。
6.導(dǎo)入項(xiàng)目
當(dāng)有包含Eclipse項(xiàng)目的源代碼文件時(shí),我們可以把它導(dǎo)入到當(dāng)前的“Eclipse”工作區(qū)然后編輯和查看。單擊菜單欄上的File→Import,然后在彈出的“Import”對(duì)話框中展開“General”目錄,選擇“Existing Projects into Workspace”,接著單擊“Next”按鈕。當(dāng)選中“Select root directory”單選按鈕時(shí)可以單擊“Browse…”按鈕選中包含項(xiàng)目的文件夾,如果包含項(xiàng)目,就可以在中間的“Projects”列表框中顯示;而當(dāng)選中“Select archive file”單選按鈕時(shí)可以單擊“Browse…”按鈕選中包含項(xiàng)目的ZIP壓縮包,如果包含項(xiàng)目,就可以在中間的“Projects”列表框中顯示。最后單擊“Finish”按鈕即可導(dǎo)入項(xiàng)目并打開了,如圖1-29所示。

圖1-29 導(dǎo)入項(xiàng)目
注意:“copy projects into workspace”復(fù)選框應(yīng)該選中,這樣才能將工程放入工作區(qū)。
工作分解-操作方案
1.運(yùn)行MyEclipse開發(fā)工具。
2.創(chuàng)建Java project工程。
3.向工程中添加類。
4.編寫程序。
5.運(yùn)行程序。
6.查看結(jié)果。
工作實(shí)施
1.運(yùn)行MyEclipse開發(fā)工具:
開始→程序→MyEclipse 6.0→MyEclipse 6.0.1。
2.創(chuàng)建Java project工程:
單擊菜單欄上的File(文件)→New(新建)→Java Project(Java工程)。在彈出的對(duì)話框中的“Project name”文本框中輸入一個(gè)有意義的項(xiàng)目名。
3.向工程中添加類。
File→New→Class(類)。在彈出對(duì)話框中的“Name”文本框中輸入類的名字,類名像人名一樣有規(guī)則,我們一般用一些有意義的英文單詞表示,并且首字母大寫,這在今后還會(huì)講。再選中“public static void main(String[] args)”前面的復(fù)選框,然后按“Finish”按鈕。
4.編寫程序。
在main方法的花括號(hào)“{}”內(nèi)添加如下語句:
System.out.println("Hello World");
該語句的作用是向控制臺(tái)輸出“Hello World”。
5.運(yùn)行程序:
Run→Run As→Java Application。
6.查看結(jié)果:
“Console”控制臺(tái)中輸出了“Hello World”。
1.4 鞏固與提高
1.選擇題
(1)下列特點(diǎn)中,哪個(gè)是Java虛擬機(jī)執(zhí)行的特點(diǎn)之一?( )
A.字節(jié)代碼
B.多進(jìn)程
C.靜態(tài)連接
D.編譯
(2)Java語言的許多特點(diǎn)中,下列哪個(gè)特點(diǎn)是C++語言所不具備的?( )
A.高性能
B.跨平臺(tái)
C.面向?qū)ο?/p>
D.有類庫
(3)在Java語言中有多種實(shí)現(xiàn)的機(jī)制,下列哪種技術(shù)屬于垃圾回收機(jī)制?( )
A.字節(jié)編譯
B.內(nèi)存跟蹤
C.語法檢查
D.堆棧上/下溢檢查
(4)下面哪個(gè)是Java語言的編譯工具?( )
A.Javac
B.Java
C.jalap
D.Javadoc
(5)Java平臺(tái)是由哪些部分組成的?( )
A.Java虛擬機(jī)和Java編譯器
B.Java應(yīng)用程序編程接口和Java虛擬機(jī)
C.Java編譯器和Java解釋器
D.Java應(yīng)用程序編程接口和解釋器
2.填空題
(1)由于Java語言的________________特性,所以采用Java編寫的應(yīng)用程序一般都有“一次編寫,到處運(yùn)行”的效果。
(2)每個(gè)Java應(yīng)用程序可以包含許多方法,但必須有且只有一個(gè)________________方法。
(3)Java程序源程序的擴(kuò)展名是________________,經(jīng)過解釋后生成的文件的擴(kuò)展名是________________。
(4).class文件存放的是________________。
- GitLab Cookbook
- Mastering Zabbix(Second Edition)
- MySQL數(shù)據(jù)庫應(yīng)用與管理 第2版
- 自己動(dòng)手寫Java虛擬機(jī)
- 跟小海龜學(xué)Python
- Learning SAP Analytics Cloud
- Learning SQLite for iOS
- C語言程序設(shè)計(jì)案例精粹
- 利用Python進(jìn)行數(shù)據(jù)分析(原書第3版)
- Spring Boot企業(yè)級(jí)項(xiàng)目開發(fā)實(shí)戰(zhàn)
- 可解釋機(jī)器學(xué)習(xí):模型、方法與實(shí)踐
- 響應(yīng)式Web設(shè)計(jì):HTML5和CSS3實(shí)戰(zhàn)(第2版)
- Python預(yù)測(cè)之美:數(shù)據(jù)分析與算法實(shí)戰(zhàn)(雙色)
- Google Maps JavaScript API Cookbook
- Python滲透測(cè)試編程技術(shù):方法與實(shí)踐(第2版)