關(guān)于我們
書單推薦
新書推薦
|
Java程序設(shè)計(jì)
本書主要介紹了Java開發(fā)環(huán)境和開發(fā)工具、Java語法基礎(chǔ)、程序流程控制、數(shù)組與字符串、類與對象、類的繼承與多態(tài)、抽象類與接口、異常處理、Java SE API常用類、泛型與集合、圖形用戶界面GUI、JDBC數(shù)據(jù)庫編程、多線程和網(wǎng)絡(luò)編程。
本書以Java SE7.0為基礎(chǔ),注重可讀性和實(shí)用性,全面系統(tǒng)地介紹Java SE的核心技術(shù),通過條理清晰的知識歸納和通俗易懂的實(shí)例講解,可以使學(xué)習(xí)者快速掌握J(rèn)ava SE的核心技術(shù),從而使用Java解決一般問題。本書配套豐富,培訓(xùn)、教學(xué)、自學(xué)均可。
前言
Java是一種完全面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,具有卓越的通用性、高效性、平臺移植性和安全性,得到廣泛的應(yīng)用。在全球云計(jì)算和移動互聯(lián)網(wǎng)產(chǎn)業(yè)高速發(fā)展的環(huán)境下,Java具備顯著的優(yōu)勢和廣闊前景。本書以Java SE 7.0為基礎(chǔ),注重可讀性和實(shí)用性,全面、系統(tǒng)地介紹Java SE的核心技術(shù)。通過條理清晰的知識歸納和通俗易懂的實(shí)例講解,幫助學(xué)生快速掌握J(rèn)ava SE的核心技術(shù),并能夠使用Java解決一般問題。
全書共分15章。第1章主要介紹Java語言的特點(diǎn)、運(yùn)行機(jī)制和應(yīng)用領(lǐng)域,以及Java開發(fā)環(huán)境與開發(fā)工具。第2~4章介紹Java基本語法: 標(biāo)識符與關(guān)鍵字,變量,運(yùn)算符與表達(dá)式,順序、選擇、循環(huán)三種流程控制,Java方法,數(shù)組與字符串。第5章主要介紹類和對象的關(guān)系、類的定義、構(gòu)造方法、成員變量和局部變量、對象的創(chuàng)建等知識點(diǎn)。第6章主要介紹類的繼承與多態(tài)。第7章主要介紹抽象類與接口的概念,以及包的使用。第8章探討如何解決Java的異常處理問題。第9章主要介紹Java標(biāo)準(zhǔn)程序庫中各種處理I/O操作的類的用途及使用方法。第10章介紹Java SE API文檔中一些常用類和接口的用法。第11章介紹泛型,講解常見的集合框架用法。第12章主要講述Java的圖形界面技術(shù),包括窗口、組件和菜單設(shè)計(jì)、布局管理器等。第13章介紹Access數(shù)據(jù)庫、JDBC的概念、Java中數(shù)據(jù)庫的常用連接方式、數(shù)據(jù)庫訪問,以及數(shù)據(jù)庫的查詢、添加、更新和刪除操作。通過簡單的數(shù)據(jù)庫操作實(shí)例,介紹Java中使用JDBC訪問數(shù)據(jù)庫的編程基礎(chǔ)。第14章主要介紹線程的概念、創(chuàng)建、常用方法及同步等知識。第15章介紹網(wǎng)絡(luò)編程中的URL類、InetAddress類、TCP程序設(shè)計(jì)、UDP程序設(shè)計(jì),并通過案例Echo程序加強(qiáng)對上述知識的應(yīng)用。
本書的例題全部在JDK 1.7環(huán)境下編譯通過。
本書由廣東理工學(xué)院多年從事計(jì)算機(jī)教學(xué)的一線教師編寫,由廣東理工學(xué)院李代平教授主審了教材的內(nèi)容。其中,第1章和第5~7章由賴小平編寫;第2~4章由梁玉英編寫;第8章和第9章由向志華編寫;第10章和第11章由郭銳編寫;第12章和第13章由陳雪娟編寫;第14章和第15章由彭雄新編寫。
由于編者水平有限,書中難免有不足之處,懇請廣大師生、讀者批評、指正。
編者
2016年11月
作者:賴小平、梁玉英、向志華、陳雪娟、郭銳、彭
目錄
第1章Java語言概述001
1.1認(rèn)識Java001
1.1.1什么是Java001
1.1.2Java語言的特點(diǎn)002
1.1.3Java程序的運(yùn)行機(jī)制004
1.1.4Java語言的應(yīng)用領(lǐng)域005
1.2Java開發(fā)環(huán)境與開發(fā)工具006
1.2.1Java開發(fā)環(huán)境006
1.2.2Java開發(fā)工具010
1.2.3Java程序開發(fā)過程013
1.3Java程序舉例015
案例1簡單控制臺應(yīng)用程序015
案例2簡單GUI應(yīng)用程序017
案例3Java Applet小應(yīng)用程序017
本章小結(jié)019
習(xí)題019
第2章Java語法基礎(chǔ)020
2.1標(biāo)識符與關(guān)鍵字020
2.1.1標(biāo)識符020
2.1.2關(guān)鍵字020
2.1.3Java命名規(guī)范022
2.2變量024
2.2.1變量的概念024
2.2.2變量的聲明與初始化024
2.2.3變量的作用域026
2.2.4變量的分類028
2.3數(shù)據(jù)類型028
2.3.1數(shù)據(jù)類型的分類029
2.3.2基本數(shù)據(jù)類型029
2.3.3基本數(shù)據(jù)類型的轉(zhuǎn)換030Java程序設(shè)計(jì)
2.4運(yùn)算符與表達(dá)式031
2.4.1表達(dá)式的概念031
2.4.2運(yùn)算符的分類031
2.4.3運(yùn)算符的優(yōu)先級與結(jié)合性038
2.5Java程序舉例039
案例簡易計(jì)算器039
本章小結(jié)039
習(xí)題040
第3章Java程序流程控制042
3.1程序基本控制結(jié)構(gòu)042
3.2選擇結(jié)構(gòu)042
3.2.1if選擇結(jié)構(gòu)042
3.2.2ifelse選擇結(jié)構(gòu)043
3.2.3多重if選擇結(jié)構(gòu)044
3.2.4嵌套if選擇結(jié)構(gòu)045
3.2.5switch選擇結(jié)構(gòu)046
3.3循環(huán)結(jié)構(gòu)047
3.3.1while語句048
3.3.2dowhile語句049
3.3.3for語句050
3.3.4break語句和continue語句052
3.3.5多重循環(huán)054
3.4Java方法055
3.4.1方法的定義055
3.4.2方法的重載058
3.4.3方法的參數(shù)059
3.5應(yīng)用實(shí)例060
案例猜數(shù)游戲060
本章小結(jié)061
習(xí)題062
第4章數(shù)組與字符串066
4.1數(shù)組的概念066
4.2一維數(shù)組067
4.2.1一維數(shù)組的聲明067
4.2.2一維數(shù)組的初始化068
4.2.3一維數(shù)組的引用069
4.3二維數(shù)組070
4.3.1二維數(shù)組的聲明070
4.3.2二維數(shù)組的初始化071
4.3.3二維數(shù)組的引用072
4.4數(shù)組操作常用方法073
4.4.1數(shù)組遍歷073
4.4.2數(shù)組復(fù)制074
4.4.3數(shù)組排序076
4.5字符串077
4.5.1String類077
4.5.2StringBuffer類082
4.5.3StringBuilder類085
4.5.4String類、StringBuffer類和StringBuilder類的使用和區(qū)別085
4.6正則表達(dá)式087
4.7應(yīng)用實(shí)例091
案例超級大樂透彩票開獎091
本章小結(jié)093
習(xí)題093
第5章類與對象097
5.1面向?qū)ο蟪绦蛟O(shè)計(jì)概述097
5.1.1面向過程與面向?qū)ο?97
5.1.2面向?qū)ο蟪绦蛟O(shè)計(jì)的特征098
5.2類的定義與對象的創(chuàng)建100
5.2.1類與對象的關(guān)系100
5.2.2類的定義101
5.2.3構(gòu)造方法104
5.2.4成員變量與局部變量105
5.2.5對象的創(chuàng)建106
5.2.6訪問控制修飾符109
5.2.7關(guān)鍵字this110
5.2.8關(guān)鍵字static112
5.3應(yīng)用實(shí)例113
案例1人類的定義與使用113
案例2飲料自動售貨機(jī)116
本章小結(jié)120
習(xí)題120
第6章類的繼承與多態(tài)124
6.1類的繼承124
6.1.1繼承與派生124
6.1.2繼承的說明126
6.1.3super關(guān)鍵字128
6.1.4final關(guān)鍵字130
6.2多態(tài)性131
6.2.1多態(tài)性的概念131
6.2.2對象變量多態(tài)性132
6.2.3方法多態(tài)性135
6.3應(yīng)用實(shí)例136
案例1圖形類的派生136
案例2動物多態(tài)性140
本章小結(jié)143
習(xí)題143
第7章抽象類與接口145
7.1抽象類145
7.1.1抽象類與抽象方法145
7.1.2抽象類與*終類147
7.2接口148
7.2.1接口的概念148
7.2.2接口的定義與實(shí)現(xiàn)149
7.2.3接口的多態(tài)153
7.2.4接口的繼承154
7.3包155
7.3.1Java系統(tǒng)API包155
7.3.2包的定義156
7.3.3編譯與執(zhí)行帶包的類157
7.3.4引入包159
7.4應(yīng)用實(shí)例161
案例手機(jī)接口的定義與實(shí)現(xiàn)161
本章小結(jié)163
習(xí)題164
第章 1 Java語言概述 Java是一門面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。本章首先介紹Java的發(fā)展歷程,讓讀者對Java有基本的認(rèn)識,了解Java的特點(diǎn)和運(yùn)行機(jī)制;然后詳細(xì)講解Java開發(fā)環(huán)境的搭建和開發(fā)流程,包括一些基本的注意事項(xiàng)。 通過本章的學(xué)習(xí),達(dá)到以下目標(biāo)。 認(rèn)識Java,并了解其發(fā)展歷程。 熟悉Java語言的特點(diǎn)及應(yīng)用領(lǐng)域。 掌握安裝并配置Java開發(fā)環(huán)境的方法。 掌握J(rèn)ava中Path及classpath屬性的作用。 能夠編寫并運(yùn)行一個簡單的Java程序。 掌握J(rèn)ava的開發(fā)流程。 了解常用的Java開發(fā)工具。 1.1認(rèn)識Java〖*2〗1.1.1什么是Java在認(rèn)識Java之前,先了解幾個基本概念。 1. 軟件開發(fā) 軟件開發(fā)是根據(jù)用戶要求建造軟件系統(tǒng)或者系統(tǒng)中的軟件部分的過程。軟件開發(fā)是一項(xiàng)包括需求捕捉、需求分析、設(shè)計(jì)、實(shí)現(xiàn)和測試的系統(tǒng)工程。軟件是一系列按照特定順序組織的計(jì)算機(jī)數(shù)據(jù)和指令的集合,分為系統(tǒng)軟件和應(yīng)用軟件。軟件一般使用某種程序設(shè)計(jì)語言來實(shí)現(xiàn),通常采用相應(yīng)的開發(fā)工具進(jìn)行開發(fā)。 開發(fā)出來的軟件系統(tǒng)可以幫助人們解決和處理各種問題,必然產(chǎn)生人機(jī)交互。人機(jī)交互方式有兩種: 圖形化界面(Graphical User Interface,GUI)和命令行方式(Command Line Interface,CLI)。*種方式簡單直觀,用戶易于接受,容易上手操作,如Windows操作系統(tǒng);第二種方式需要一個控制臺,用戶輸入特定的指令,讓計(jì)算機(jī)完成操作,較為麻煩,需要用戶記住一些命令,如DOS操作系統(tǒng)。 2. 計(jì)算機(jī)語言 語言是人與人之間用于溝通的一種方式。例如,中國人與中國人用普通話溝通;中國人要和英國人交流,需要學(xué)習(xí)英語。計(jì)算機(jī)語言是人與計(jì)算機(jī)交流的方式。如果人要與計(jì)算機(jī)交流,需要學(xué)習(xí)計(jì)算機(jī)語言。計(jì)算機(jī)語言有很多種,如C、C++、Java、PHP等。Java程序設(shè)計(jì) 00第1章 Java語言概述 00Java是Sun公司(全稱Stanford University Network,1982年成立。2009年4月20日,被甲骨文公司以約74億美元收購)開發(fā)的一套編程語言,主設(shè)計(jì)者是James Gosling(見圖11),*早來源于一個叫Green的項(xiàng)目。這個項(xiàng)目*初的目的是為家用電子消費(fèi)產(chǎn)品開發(fā)一個小巧、易用、安全穩(wěn)定、與平臺無關(guān)的分布式代碼系統(tǒng),以便通過網(wǎng)絡(luò)對家用電器進(jìn)行控制。一開始,Sun公司的工程師們準(zhǔn)備采用C++語言來開發(fā),但由于C++過于復(fù)雜,安全性差,于是他們決定基于C++開發(fā)一種符合自己要求的新語言。1991年4月,歷時18個月,新語言的*個版本誕生了。命名時, James Gosling看到窗口的橡樹(見圖12),遂為其取名為Oak,希望它能夠有橡樹一般堅(jiān)強(qiáng)的生命力。后來,他發(fā)現(xiàn)“Oak”是Sun公司另外一種語言的注冊商標(biāo),于是1995年將這種新語言更名為“Java”,即太平洋上一個盛產(chǎn)咖啡的島嶼的名字。Java是一種用于網(wǎng)絡(luò)的,精巧而安全的語言,使得程序能夠*大限度地利用網(wǎng)絡(luò)資源。 圖11James Gosling 圖12印度橡樹 Java語言發(fā)展到今天,有過多個版本。1995年5月23日,Sun公司推出Java JDK 1.0版,標(biāo)志著Java正式進(jìn)軍Internet。1998年,Sun公司對JDK 1.0升級,并推出JDK 1.2的開發(fā)包,加入大量的輕量級組件包。從此,Java正式命名為Java 2。 Java語言經(jīng)歷了以下3個發(fā)展方向。 (1) J2SE(Java 2 Platform Standard Edition): 包含構(gòu)成Java語言核心的類,如數(shù)據(jù)庫連接、接口定義、輸入/輸出和網(wǎng)絡(luò)編程,主要用于開發(fā)一般個人電腦上的應(yīng)用軟件。 (2) J2ME(Java 2 Platform Micro Edition): 包含J2SE中的一部分類,用于消費(fèi)類電子產(chǎn)品的軟件開發(fā),如呼機(jī)、智能卡、手機(jī)、PDA和機(jī)頂盒。 (3) J2EE(Java 2 Platform Enterprise Edition): 即Java企業(yè)版,包含J2SE中的所有類,還包含用于開發(fā)企業(yè)級應(yīng)用的類,如EJB、Servlet、JSP、XML和事務(wù)控制,也是現(xiàn)在Java應(yīng)用的主要方向,用于開發(fā)企業(yè)級應(yīng)用軟件。 上述3項(xiàng)中的核心部分是J2SE,J2ME和J2EE是在J2SE基礎(chǔ)上發(fā)展起來的。 【注】 在2005年“Java十周年大會”之后,上述3門技術(shù)被重新命名。 (1) J2SE更名為Java SE。 (2) J2ME更名為Java ME。 (3) J2EE更名為Java EE。 1.1.2Java語言的特點(diǎn) Java總是和C++聯(lián)系在一起,而C++是從C語言派生而來的,所以Java語言繼承了這兩種語言的大部分特性。Java的語法從C語言繼承而來,Java許多面向?qū)ο蟮奶匦远际艿紺++的影響。事實(shí)上,Java中的幾個自定義特性都來自于或可以追溯到它的這些前驅(qū)語言。略有不同的是,Java語言完全面向?qū)ο,摒棄了C和C++的不足。Java語言的誕生與過去近30年中計(jì)算機(jī)語言的不斷改進(jìn)和發(fā)展密切相關(guān)。 Sun公司在《Java白皮書》中對Java的定義是: “Java: A simple, objectoriented, distributed,interpreted,robust,architectureneutral,secure,portable,highperformance,multithreaded,and dynamic language.”即Java是一種具有簡單、面向?qū)ο蟆⒎植际健⒔忉屝、健壯、安全、與體系結(jié)構(gòu)無關(guān)、可移植、高性能、多線程和動態(tài)執(zhí)行等特性的語言。下面簡述Java的主要特性。 1. 簡單易用 Java語言是一種相當(dāng)簡潔的面向?qū)ο蟪绦蛟O(shè)計(jì)語言,它省略了C++語言中所有難以理解、容易混淆的特性,如頭文件、指針、結(jié)構(gòu)、單元、運(yùn)算符重載和虛擬基礎(chǔ)類等,更加嚴(yán)謹(jǐn)、簡潔。 Java源代碼的書寫不拘泥于特定的環(huán)境,可以使用記事本、文本編輯器等;將源文件編譯后,可直接運(yùn)行;再通過調(diào)試,得到預(yù)期的結(jié)果。 此外,Java可以自動完成垃圾收集工作,回收不再使用的內(nèi)存,使用戶無須擔(dān)心內(nèi)存管理之類的事情。 2. 面向?qū)ο? 面向?qū)ο笫侵敢詫ο鬄榛玖6,其下包含屬性和方法。對象的說明用屬性表達(dá),通過使用方法來操作這個對象?梢赃@么說,面向?qū)ο笫擒浖こ虒W(xué)的一次革命,大大提升了人類的軟件開發(fā)能力,是一個偉大的進(jìn)步,是軟件發(fā)展重大的里程碑。作為一種現(xiàn)代編程語言,是不能偏離面向?qū)ο筮@一方向的,Java語言也不例外。 Java是一種面向?qū)ο蟮恼Z言,具有面向?qū)ο蟮闹T多優(yōu)點(diǎn),如代碼擴(kuò)展、代碼復(fù)用等。 3. 分布式 Java語言具有強(qiáng)大的、易于使用的聯(lián)網(wǎng)能力,非常適合開發(fā)分布式計(jì)算的程序。Java應(yīng)用程序可以像訪問本地文件系統(tǒng)那樣通過URL訪問遠(yuǎn)程對象。 使用Java語言編寫Socket通信程序比使用其他任何語言都簡單。它適用于公共網(wǎng)關(guān)接口(CGI)腳本的開發(fā),還可以利用Java小應(yīng)用程序(Applet)、Java服務(wù)器頁面(Java Server Page,JSP)、Servlet等手段構(gòu)建更豐富的網(wǎng)頁。 4. 解釋型 Java是一種解釋型語言,相對于C/C++,用Java語言寫出來的程序效率低,執(zhí)行速度慢。但它可以通過在不同平臺上運(yùn)行Java解釋器,解釋Java代碼,實(shí)現(xiàn)“一次編寫,到處運(yùn)行”的目標(biāo)。為此,犧牲效率是值得的。而且,現(xiàn)在的計(jì)算機(jī)技術(shù)日新月異,運(yùn)算速度越來越快,用戶不會感到太慢。 5. 健壯 Java語言在偽編譯時做了許多早期潛在問題的檢查,在運(yùn)行時又做了一些相應(yīng)的檢查,可以說是一種*嚴(yán)格的編譯器。它的這種“防患于未然”的手段將許多程序中的錯誤扼殺在“搖籃”之中,使得許多在其他語言中必須通過運(yùn)行才會暴露出來的錯誤,在編譯階段就被發(fā)現(xiàn)了。 另外,Java語言具備保證程序穩(wěn)定、健壯的特性,有效地減少了錯誤,使Java應(yīng)用程序更加健壯。 6. 具有較高的安全性 人們設(shè)計(jì)Java語言時,在安全性方面考慮得很仔細(xì),做了許多探究,使其成為目前*安全的一種程序設(shè)計(jì)語言。 對Java來說,安全性分為4個層面,即語言級安全性、編譯時安全性、運(yùn)行時安全性和可執(zhí)行代碼安全性。語言級安全性指Java的數(shù)據(jù)結(jié)構(gòu)是完整的對象,這些封裝過的數(shù)據(jù)類型具有安全性。編譯時,要進(jìn)行Java語言和語義的檢查,保證每個變量對應(yīng)一個值,編譯后生成Java類。運(yùn)行時,Java類需要使用類加載器載入,由字節(jié)碼校驗(yàn)器校驗(yàn)之后才可以運(yùn)行。Java類在網(wǎng)絡(luò)上使用時,對其權(quán)限進(jìn)行了設(shè)置,以保證被訪問用戶的安全性。 7. 可移植性 對于程序員而言,寫出來的程序如果不需要修改就能夠同時在Windows、Mac OS、UNIX等平臺上運(yùn)行,簡直就是美夢成真,Java語言讓這個原本遙不可及的事越來越近。使用Java語言編寫的程序,只需較少的修改,甚至有時根本不需修改,即可在不同平臺上運(yùn)行。 8. 擁有較高的性能 由于Java是一種解釋型語言,其執(zhí)行效率就會低一些,但采取下述兩種措施,可使其擁有較高的性能。 (1) Java語言源程序編寫完成后,先使用Java偽編譯器進(jìn)行偽編譯,將其轉(zhuǎn)換為中間碼(也稱為字節(jié)碼)再解釋。 (2) 提供了一種準(zhǔn)實(shí)時(JustInTime,JIT)編譯器。當(dāng)需要更快的速度時,使用JIT編譯器將字節(jié)碼轉(zhuǎn)換成機(jī)器碼,將其緩沖下來,速度就會更快。 9. 具有多線程處理能力 線程是一種輕量級進(jìn)程,是現(xiàn)代程序設(shè)計(jì)中必不可少的一種特性。多線程是指允許一個應(yīng)用程序同時存在兩個或以上的線程,用于支持事務(wù)并發(fā)和多任務(wù)處理。多線程處理能力使程序具有更好的交互性和實(shí)時性。 Java在多線程處理方面性能超群,除了內(nèi)置的多線程技術(shù)之外,還定義了一些類、方法等來建立和管理用戶定義的多線程,具有讓用戶驚喜的強(qiáng)大功能,而且在Java語言中進(jìn)行多線程處理也很簡單。 10. 是一種動態(tài)語言 Java是一種動態(tài)的語言,表現(xiàn)在以下兩個方面。 (1) 在Java語言中,可以簡單、直觀地查詢運(yùn)行時的信息。 (2) 可以將新代碼加入到正在運(yùn)行的程序中。 1.1.3Java程序的運(yùn)行機(jī)制 在Java中處理代碼的過程如圖13所示。 圖13Java程序的運(yùn)行機(jī)制 從圖13中可以看出,Java源文件名的后綴為.java,通過編譯,生成.class文件,在計(jì)算機(jī)上執(zhí)行。此時執(zhí)行.class的計(jì)算機(jī)并不是物理上可見的,而是Java自己設(shè)計(jì)的一臺計(jì)算機(jī)——Java虛擬機(jī)(Java Virtual Machine,JVM)。Java通過JVM進(jìn)行可移植性操作。 在Java中,所有的程序都在JVM上運(yùn)行。JVM是在一臺計(jì)算機(jī)上由軟件或硬件模擬的計(jì)算機(jī),它讀取并處理編譯過的、與平臺無關(guān)的字節(jié)碼*.class文件。Java解釋器負(fù)責(zé)將Java虛擬機(jī)的代碼在特定的平臺上運(yùn)行。JVM的基本原理如圖14所示。 圖14JVM的基本原理 從圖14中可以發(fā)現(xiàn),所有的.class文件都在JVM上運(yùn)行,即.class文件只需要認(rèn)識JVM,由JVM去適應(yīng)各個操作系統(tǒng)。如果不同的操作系統(tǒng)安裝了符合其類型的JVM,那么程序無論在哪個操作系統(tǒng)上都可以正確執(zhí)行。 有些讀者可能很難理解以上的解釋。其實(shí)這個過程類似于下述情景: 有一位中國富商,同時要和美國、韓國、俄羅斯、日本、法國、德國等幾個國家的客戶洽談生意,可是他不懂這些國家的語言,所以他針對每個國家請了一位翻譯。他只對翻譯說話,不同的翻譯會將他說的話譯給相應(yīng)的客戶。這樣,富商只需要對各位翻譯說話,就可以同幾個國家的客戶溝通。 【注】 Java的兩種核心機(jī)制如下所述。 (1) Java虛擬機(jī)(Java Virtal Machine),是一臺利用軟件方法實(shí)現(xiàn)的虛擬的計(jì)算機(jī),具有指令集,并使用不同的存儲區(qū)域,負(fù)責(zé)執(zhí)行指令,管理數(shù)據(jù)、內(nèi)存、寄存器。對于不同的平臺,有不同的虛擬機(jī)。Java虛擬機(jī)屏蔽了底層運(yùn)行平臺的差別,實(shí)現(xiàn)了“一次編譯,到處運(yùn)行”。 (2) 垃圾收集機(jī)制(Garbage Collection),即回收不再使用的內(nèi)存空間。在C/C++等語言中,由程序員負(fù)責(zé)回收無用內(nèi)存。Java 語言撤銷了程序員回收無用內(nèi)存空間的責(zé)任,它提供一種系統(tǒng)級線程來跟蹤存儲空間的分配情況,并在JVM空閑時,檢查并釋放那些可被釋放的存儲空間。垃圾回收在Java程序運(yùn)行過程中自動執(zhí)行,程序員無法精確控制和干預(yù)。 1.1.4Java語言的應(yīng)用領(lǐng)域 Java技術(shù)自1995年問世以來,在我國的應(yīng)用和開發(fā)迅速普及。總體來看,主要集中于企業(yè)應(yīng)用開發(fā)。根據(jù)有關(guān)單位調(diào)查顯示,從開發(fā)領(lǐng)域的分布來看,Web開發(fā)占了一半以上,為57.9%;Java ME移動或嵌入式應(yīng)用占15%;C/S應(yīng)用占11.7%;系統(tǒng)編程占15.4%。近30%的開發(fā)者用Java從事C/S應(yīng)用或系統(tǒng)級應(yīng)用的開發(fā)。 Java語言主要應(yīng)用在下述幾個領(lǐng)域。 1. 行業(yè)和企業(yè)信息化 由于Sun、IBM、Oracle、BEA等國際廠商相繼推出基于Java技術(shù)的應(yīng)用服務(wù)器以及各種應(yīng)用軟件,帶動了Java在金融、電信、制造等領(lǐng)域日益廣泛的應(yīng)用。例如,清華大學(xué)計(jì)算機(jī)系利用Java、XML和Web技術(shù)研制開發(fā)了多個軟件平臺,東方科技的Tong Web、金蝶的Apusic、中創(chuàng)的Inforweb 等J2EE應(yīng)用服務(wù)器,以及和佳ERP和寶信ERP等ERP產(chǎn)品,在許多企業(yè)得到應(yīng)用。 2. 電子政務(wù)及辦公自動化 東方科技、金蝶、中創(chuàng)等公司開發(fā)的J2EE應(yīng)用服務(wù)器在電子政務(wù)及辦公自動化中廣泛應(yīng)用。例如,金蝶的Apusic在民政部、廣東省市工商局應(yīng)用;東軟電子政務(wù)架構(gòu)EAP平臺在社會保險、公檢法、稅務(wù)系統(tǒng)應(yīng)用;中創(chuàng)的Inforweb等Infor系列中間件產(chǎn)品在國家海事局、山東省政府及中國建設(shè)銀行、民生銀行等金融系統(tǒng)應(yīng)用;無錫永中科技基于Java平臺開發(fā)的國產(chǎn)化集成辦公軟件永中Office在一些省、市政府部門應(yīng)用。 3. 嵌入式設(shè)備及消費(fèi)類電子產(chǎn)品 無線手持設(shè)備、通信終端、醫(yī)療設(shè)備、信息家電(如數(shù)字電視、機(jī)頂盒、電冰箱)、汽車電子設(shè)備等是近年來比較熱門的Java應(yīng)用領(lǐng)域。在這方面的應(yīng)用有中國聯(lián)通CDMA 1X網(wǎng)絡(luò)中基于Java技術(shù)的無線數(shù)據(jù)增值服務(wù)——UniJa。 4. 輔助教學(xué) 在輔助教學(xué)方面,東南大學(xué)與中興通訊公司利用Java語言聯(lián)合開發(fā)了遠(yuǎn)程教學(xué)系統(tǒng),用于本地網(wǎng)上教學(xué)、課后學(xué)習(xí)和異地遠(yuǎn)程教育;清華大學(xué)利用Java語言進(jìn)行了計(jì)算機(jī)軟件基礎(chǔ)課教學(xué)改革,分析、研究Java教學(xué)軟件BlueJ的漢化方案;電子科技大學(xué)應(yīng)用Java RMI技術(shù)進(jìn)行遠(yuǎn)程教育;西安電力高等專科學(xué)校采用Java技術(shù)開發(fā)了交互式電站仿真系統(tǒng),實(shí)現(xiàn)電站鍋爐仿真、鍋爐膛火焰仿真,為實(shí)現(xiàn)網(wǎng)上仿真進(jìn)行了有益的探索。 1.2Java開發(fā)環(huán)境與開發(fā)工具〖*2〗1.2.1Java開發(fā)環(huán)境一臺計(jì)算機(jī)上安裝了JVM,即可運(yùn)行Java程序。但是要開發(fā)Java程序,還需建立Java開發(fā)環(huán)境。不同領(lǐng)域的Java開發(fā)應(yīng)用所需的版本不同,本書使用Java SE開發(fā)環(huán)境。 1. Java SE的組成 Java SE是一個包含Java開發(fā)環(huán)境和運(yùn)行環(huán)境的套件,由以下3項(xiàng)組成。 (1) Java Development Kit(JDK): Java應(yīng)用程序開發(fā)環(huán)境。 Java不僅提供了豐富的語言和運(yùn)行環(huán)境,還提供了一個免費(fèi)的Java開發(fā)工具集(Java Development Kit,JDK),以便程序員開發(fā)Java 開發(fā)工具包。Java 2 SDK開發(fā)工具集如表11所示。表11Java 2 SDK開發(fā)工具集 工具名稱說明JavacJava編譯器,用于將Java源程序編譯成字節(jié)碼JavaJava解釋器,用于解釋、執(zhí)行Java字節(jié)碼Appletviewer小應(yīng)用程序查看器,用于測試和運(yùn)行Java Applet程序JavadocJava文檔生成器JdbJava調(diào)試器JavapJava類文件反匯編器JavahC文件生成器,實(shí)現(xiàn)在Java類中調(diào)用C++代碼JDK中除了包括Java開發(fā)工具以外,還包括JRE,所以安裝了JDK,就不用單獨(dú)安裝JRE了。 (2) Java Runtime Environment(JRE): Java應(yīng)用程序運(yùn)行環(huán)境,包括Java虛擬機(jī)和Java程序所需要的核心類庫等。如果僅需運(yùn)行開發(fā)好的Java程序,計(jì)算機(jī)只需要安裝JRE。 (3) Java Plugin: Java插件。 JVM、JRE與JDK的關(guān)系如圖15所示。 圖15JVM、JRE與JDK的關(guān)系 2. 建立Java SE開發(fā)環(huán)境 步驟1: 安裝JDK(本書使用JDK 1.6版本)。 (1) 準(zhǔn)備好JDK的安裝文件jdk6u18windowsi586se版.exe。從Oracle公司的網(wǎng)站(http://www.oracle.com/technetwork/java/javase/downloads/indexjsp138363.html)下載JDK工具包。 (2) 運(yùn)行.exe文件,安裝JDK。默認(rèn)安裝在C:\\Program Files\\Java目錄下,本書更改安裝在D:\\Java目錄下。 (3) 按照安裝向?qū)У奶崾,完成安裝,即可看到如圖16所示文件夾。 圖16安裝JDK后的文件夾 ① bin: 一些執(zhí)行文件,包括Java的編譯器、解釋器和工具。 ② demo: 各種演示的實(shí)例。 ③ lib: 保存的庫文件。 ④ include: Win32子目錄,都是本地文件。 ⑤ jre: Java程序運(yùn)行環(huán)境的根目錄。 其中,bin文件夾包含將來要使用的各種Java命令,但是這些命令本身并不在Windows環(huán)境之中。要想使用這些命令,必須先在Windows中注冊。 步驟2: 設(shè)置環(huán)境變量。 在JDK安裝完畢后,需設(shè)置path和classpath這兩個環(huán)境變量。這是程序編譯和運(yùn)行的重要保證。 path指示Java命令的路徑,如javac、java、javaw等。這樣,在控制臺下面編譯、執(zhí)行程序時就不需要再輸入路徑了。 由于JDK的安裝路徑多次使用,在此先新建環(huán)境變量JAVA_HOME,操作步驟如下。 (1) 選擇“我的電腦”→“屬性”命令,在打開的窗口中選擇“高級系統(tǒng)設(shè)置”命令,打開“系統(tǒng)屬性”對話框,如圖17所示。 (2) 選擇“高級”選項(xiàng)卡,然后單擊“環(huán)境變量”按鈕,打開“環(huán)境變量”對話框,如圖18所示。 (3) 單擊“系統(tǒng)變量”欄中的“新建”按鈕,彈出“編輯系統(tǒng)變量”對話框。在“變量名”文本框中輸入JAVA_HOME,在“變量值”文本框中輸入C:\\Java\\jdk1.7.0_03,如圖19所示。 path環(huán)境變量包含在Windows系統(tǒng)里,修改一下,使其指向JDK的bin目錄,即在“環(huán)境變量”對話框中單擊“系統(tǒng)變量”欄中的“編輯”按鈕,彈出“編輯系統(tǒng)變量”對話框,然后在“變量值”文本框的*前面加上路徑,再用“;”將后面的路徑分隔開,如“%JAVA_HOME%\\bin;”,如圖110所示。 注意: 環(huán)境變量的各變量值之間需用分號分隔。 圖17“系統(tǒng)屬性”對話框 圖18“環(huán)境變量”對話框
你還可能感興趣
我要評論
|