Java語言具有面向?qū)ο蟆⑴c平臺(tái)無關(guān)、安全、穩(wěn)定和多線程等優(yōu)良特性,是目前軟件設(shè)計(jì)中極為強(qiáng)大的編程語言,特別適合于網(wǎng)絡(luò)應(yīng)用程序的設(shè)計(jì),已經(jīng)成為網(wǎng)絡(luò)時(shí)代最重要的語言之一。本書精選Java核心內(nèi)容,注重結(jié)合實(shí)例,循序漸進(jìn)地向讀者介紹Java語言的核心內(nèi)容,在基礎(chǔ)語言上強(qiáng)調(diào)Java面向?qū)ο缶幊痰乃枷耄趯?shí)用類上側(cè)重應(yīng)用。
全書分為14章,分別講解簡(jiǎn)單數(shù)據(jù)類型、運(yùn)算符、表達(dá)式和語句、類與對(duì)象、子類與繼承、接口與實(shí)現(xiàn)、內(nèi)部類與異常類、常用實(shí)用類、Java輸入輸出流、組件與事件處理、Java多線程機(jī)制、Java網(wǎng)絡(luò)編程、JDBC數(shù)據(jù)庫操作等內(nèi)容。
本書適合高等院校計(jì)算機(jī)專業(yè)作為Java語言程序設(shè)計(jì)的教材以及想掌握J(rèn)ava核心內(nèi)容的自學(xué)者。
本書精選Java核心內(nèi)容和重要的實(shí)用技術(shù),注重Java語言的面向?qū)ο筇匦裕瑥?qiáng)調(diào)面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,在實(shí)例上側(cè)重實(shí)用性和啟發(fā)性,在類、對(duì)象、繼承、接口等重要的基礎(chǔ)知識(shí)上側(cè)重編程思想,在實(shí)用類、輸入輸出流、Java 網(wǎng)絡(luò)技術(shù)、JDBC數(shù)據(jù)庫操作等實(shí)用技術(shù)方面?zhèn)戎貙?shí)用。通過本書的學(xué)習(xí),讀者可以掌握J(rèn)ava面向?qū)ο缶幊痰乃枷牒蚃ava編程中的一些重要技術(shù)。
在第2版中,除了更新了JDK的版本外,在內(nèi)容上做了適當(dāng)?shù)恼{(diào)整,特別增加了每章的上機(jī)實(shí)踐內(nèi)容。對(duì)第14章做了比較大的調(diào)整,由原來的操作Access數(shù)據(jù)庫,更改為操作JDK新版本自帶的Derby數(shù)據(jù)庫。刪除了很少使用的第15章的內(nèi)容。
全書共分為14章。第1章主要介紹Java產(chǎn)生的背景和Java平臺(tái),讀者可以了解到Java是怎樣做到“一次寫成,處處運(yùn)行”的; 第2章講述Java程序的基本結(jié)構(gòu); 第3章講解簡(jiǎn)單數(shù)據(jù)類型; 第4章主要介紹Java運(yùn)算符和控制語句; 第5章、第6章和第7章是本書的重點(diǎn)內(nèi)容之一,講述類與對(duì)象、子類與繼承、接口與多態(tài)等內(nèi)容; 第8章講解內(nèi)部類和匿名類,特別強(qiáng)調(diào)使用內(nèi)部類的原則以及學(xué)習(xí)自定義異常的重要性; 第9章講述常用的實(shí)用類,包括字符串、日期、正則表達(dá)式、模式匹配以及數(shù)學(xué)計(jì)算等實(shí)用類,特別講解怎樣使用Scanner類解析字符串; 第10章講解Java中的輸入輸出流技術(shù),特別介紹怎樣使用輸入輸出流來克隆對(duì)象、Java的文件鎖技術(shù)以及使用Scanner解析文件等重要內(nèi)容; 第11章是基于Java Swing的GUI圖形用戶界面設(shè)計(jì),講解常用的組件和容器,特別詳細(xì)講解事件處理; 第12章講述多線程技術(shù),通過許多有啟發(fā)的例子來幫助讀者理解多線程編程; 第13章講解Java在網(wǎng)絡(luò)編程中的一些重要技術(shù),涉及URL、Socket、InetAddress、DatagramPacket等重要的類,特別講解Java遠(yuǎn)程調(diào)用(RMI); 第14章主要講解Java怎樣使用JDBC操作數(shù)據(jù)庫,講解了預(yù)處理、事務(wù)處理、批處理等重要技術(shù)。
本書的實(shí)例的源程序以及電子教案可以從清華大學(xué)出版社網(wǎng)站(www.tup.com.cn)上免費(fèi)下載,以供讀者學(xué)習(xí)使用; 也可以加入耿祥義教材教學(xué)QQ群(238455879)討論相關(guān)內(nèi)容。
編者
2015年3月
第1章Java入門
1.1Java的平臺(tái)無關(guān)性
1.1.1平臺(tái)與機(jī)器指令
1.1.2C/C++程序依賴平臺(tái)
1.1.3虛擬機(jī)與平臺(tái)
1.2Java之父——James Gosling
1.3Java的地位
1.3.1網(wǎng)絡(luò)地位
1.3.2語言地位
1.3.3需求地位
1.4安裝JDK
1.4.1平臺(tái)簡(jiǎn)介
1.4.2安裝Java SE平臺(tái)
1.5Java程序的開發(fā)步驟
1.6一個(gè)簡(jiǎn)單的Java應(yīng)用程序
1.6.1編寫源文件
1.6.2編譯
1.6.3運(yùn)行
1.7上機(jī)實(shí)踐
習(xí)題
第2章Java應(yīng)用程序的基本結(jié)構(gòu)
2.1問題的提出
2.2簡(jiǎn)單的Circle類
2.3使用Circle類創(chuàng)建對(duì)象
2.3.1用類聲明對(duì)象
2.3.2為對(duì)象分配變量
2.3.3使用對(duì)象
2.4在應(yīng)用程序中使用對(duì)象
2.5Java應(yīng)用程序的基本結(jié)構(gòu)
2.6在一個(gè)源文件中編寫多個(gè)類
2.7編程風(fēng)格
2.7.1Allmans風(fēng)格
2.7.2Kernighan風(fēng)格
2.7.3注釋
2.8上機(jī)實(shí)踐
習(xí)題
第3章標(biāo)識(shí)符與簡(jiǎn)單數(shù)據(jù)類型
3.1標(biāo)識(shí)符與關(guān)鍵字
3.1.1標(biāo)識(shí)符
3.1.2關(guān)鍵字
3.2簡(jiǎn)單數(shù)據(jù)類型
3.2.1邏輯類型
3.2.2整數(shù)類型
3.2.3字符類型
3.2.4浮點(diǎn)類型
3.3簡(jiǎn)單數(shù)據(jù)類型的級(jí)別與類型轉(zhuǎn)換運(yùn)算
3.4從命令行窗口輸入、輸出數(shù)據(jù)
3.4.1輸入基本型數(shù)據(jù)
3.4.2輸出基本型數(shù)據(jù)
3.5上機(jī)實(shí)踐
習(xí)題
第4章運(yùn)算符、表達(dá)式與語句
4.1運(yùn)算符與表達(dá)式
4.1.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式
4.1.2自增,自減運(yùn)算符
4.1.3算術(shù)混合運(yùn)算的精度
4.1.4關(guān)系運(yùn)算符與關(guān)系表達(dá)式
4.1.5邏輯運(yùn)算符與邏輯表達(dá)式
4.1.6賦值運(yùn)算符與賦值表達(dá)式
4.1.7位運(yùn)算符
4.1.8instanceof運(yùn)算符
4.1.9運(yùn)算符綜述
4.2語句概述
4.3if條件分支語句
4.3.1if語句
4.3.2ifelse語句
4.3.3ifelse ifelse語句
4.4switch開關(guān)語句
4.5循環(huán)語句
4.5.1for循環(huán)語句
4.5.2while循環(huán)
4.5.3dowhile循環(huán)
4.6break和continue語句
4.7數(shù)組
4.7.1聲明數(shù)組
4.7.2為數(shù)組分配元素
4.7.3數(shù)組元素的使用
4.7.4length的使用
4.7.5數(shù)組的初始化
4.7.6數(shù)組的引用
4.7.7遍歷數(shù)組
4.8上機(jī)實(shí)踐
習(xí)題
第5章類與對(duì)象
5.1面向?qū)ο蟮奶匦?br />
5.2類
5.2.1類聲明
5.2.2類體
5.2.3成員變量
5.2.4方法
5.2.5需要注意的問題
5.2.6類的UML類圖
5.3構(gòu)造方法與對(duì)象的創(chuàng)建
5.3.1構(gòu)造方法
5.3.2創(chuàng)建對(duì)象
5.3.3使用對(duì)象
5.3.4對(duì)象的引用和實(shí)體
5.4參數(shù)傳值
5.4.1傳值機(jī)制
5.4.2基本數(shù)據(jù)類型參數(shù)的傳值
5.4.3引用類型參數(shù)的傳值
5.5對(duì)象的組合
5.5.1由矩形和圓組合而成的圖形
5.5.2關(guān)聯(lián)關(guān)系和依賴關(guān)系的UML圖
5.6實(shí)例成員與類成員
5.6.1實(shí)例變量和類變量的聲明
5.6.2實(shí)例變量和類變量的區(qū)別
5.6.3實(shí)例方法和類方法的定義
5.6.4實(shí)例方法和類方法的區(qū)別
5.7方法重載與多態(tài)
5.8this關(guān)鍵字
5.8.1在構(gòu)造方法中使用this
5.8.2在實(shí)例方法中使用this
5.9包
5.9.1包語句
5.9.2有包名的類的存儲(chǔ)目錄
5.9.3運(yùn)行有包名的主類
5.10import語句
5.10.1引入類庫中的類
5.10.2引入自定義包中的類
5.11訪問權(quán)限
5.11.1何謂訪問權(quán)限
5.11.2私有變量和私有方法
5.11.3共有變量和共有方法
5.11.4友好變量和友好方法
5.11.5受保護(hù)的成員變量和方法
5.11.6public類與友好類
5.12基本類型的類包裝
5.12.1Double和Float類
5.12.2Byte、Short 、Integer、Long類
5.12.3Character類
5.13可變參數(shù)
5.14上機(jī)實(shí)踐
習(xí)題
第6章子類與繼承
6.1子類與父類
6.2子類的繼承性
6.2.1子類和父類在同一包中的繼承性
6.2.2子類和父類不在同一包中的繼承性
6.2.3繼承關(guān)系(Generalization)的UML圖
6.3成員變量的隱藏和方法重寫
6.3.1成員變量的隱藏
6.3.2方法重寫(Override)
6.4super關(guān)鍵字
6.4.1用super操作被隱藏的成員變量和方法
6.4.2使用super調(diào)用父類的構(gòu)造方法
6.5final關(guān)鍵字
6.5.1final類
6.5.2final方法
6.5.3常量
6.6對(duì)象的上轉(zhuǎn)型對(duì)象
6.7繼承與多態(tài)
6.8abstract類和abstract方法
6.9面向抽象編程
6.10開閉原則
6.11上機(jī)實(shí)踐
習(xí)題
第7章接口與實(shí)現(xiàn)
7.1接口
7.2實(shí)現(xiàn)接口
7.3理解接口
7.4接口的UML圖
7.5接口回調(diào)
7.6接口與多態(tài)
7.7接口變量做參數(shù)
7.8abstract類與接口的比較
7.9面向接口編程
7.10上機(jī)實(shí)踐
習(xí)題
第8章內(nèi)部類與異常類
8.1內(nèi)部類
8.2匿名類
8.2.1和子類有關(guān)的匿名類
8.2.2和接口有關(guān)的匿名類
8.3異常類
8.3.1trycatch語句
8.3.2自定義異常類
8.3.3finally子語句
8.4斷言
8.5上機(jī)實(shí)踐
習(xí)題
第9章常用實(shí)用類
9.1String類
9.1.1構(gòu)造字符串對(duì)象
9.1.2String類的常用方法
9.1.3字符串與基本數(shù)據(jù)的相互轉(zhuǎn)化
9.1.4對(duì)象的字符串表示
9.1.5字符串與字符、字節(jié)數(shù)組
9.1.6正則表達(dá)式及字符串的替換與分解
9.2StringBuffer類
9.2.1StringBuffer對(duì)象的創(chuàng)建
9.2.2StringBuffer類的常用方法
9.3StringTokenizer類
9.4Date類
9.4.1構(gòu)造Date對(duì)象
9.4.2日期格式化
9.5Calendar類
9.6Math和BigInteger類
9.6.1Math類
9.6.2BigInteger類
9.7DecimalFormat類
9.7.1格式化數(shù)字
9.7.2將格式化字符串轉(zhuǎn)化為數(shù)字
9.8Pattern與Match類
9.8.1模式對(duì)象
9.8.2匹配對(duì)象
9.9Scanner類
9.10上機(jī)實(shí)踐
習(xí)題
第10章輸入輸出流
10.1File類
10.1.1文件的屬性
10.1.2目錄
10.1.3文件的創(chuàng)建與刪除
10.1.4運(yùn)行可執(zhí)行文件
10.2字節(jié)流與字符流
10.2.1InputStream類與OutputStream類
10.2.2Reader類與Writer類
10.2.3關(guān)閉流
10.3文件字節(jié)流
10.3.1文件字節(jié)輸入流
10.3.2文件字節(jié)輸出流
10.4文件字符流
10.5緩沖流
10.6隨機(jī)流
10.7數(shù)組流
10.8數(shù)據(jù)流
10.9對(duì)象流
10.10序列化與對(duì)象克隆
10.11文件鎖
10.12使用Scanner解析文件
10.13上機(jī)實(shí)踐
習(xí)題
第11章組件及事件處理
11.1Java Swing概述
11.2窗口
11.2.1JFrame常用方法
11.2.2菜單條、菜單、菜單項(xiàng)
11.3常用組件與布局
11.3.1常用組件
11.3.2常用容器
11.3.3常用布局
11.3.4選項(xiàng)卡窗格
11.4處理事件
11.4.1事件處理模式
11.4.2ActionEvent事件
11.4.3ItemEvent事件
11.4.4DocumentEvent事件
11.4.5MouseEvent事件
11.4.6焦點(diǎn)事件
11.4.7鍵盤事件
11.4.8匿名類實(shí)例或窗口做監(jiān)視器
11.4.9事件總結(jié)
11.5使用MVC結(jié)構(gòu)
11.6對(duì)話框
11.6.1消息對(duì)話框
11.6.2輸入對(duì)話框
11.6.3確認(rèn)對(duì)話框
11.6.4顏色對(duì)話框
11.6.5文件對(duì)話框
11.6.6自定義對(duì)話框
11.7發(fā)布GUI程序
11.8上機(jī)實(shí)踐
習(xí)題
第12章Java多線程機(jī)制
12.1進(jìn)程與線程
12.1.1操作系統(tǒng)與進(jìn)程
12.1.2進(jìn)程與線程
12.2Java中的線程
12.2.1Java的多線程機(jī)制
12.2.2線程的狀態(tài)與生命周期
12.2.3線程調(diào)度與優(yōu)先級(jí)
12.3Thread類與線程的創(chuàng)建
12.3.1使用Thread的子類
12.3.2使用Thread類
12.3.3關(guān)于run方法啟動(dòng)的次數(shù)
12.4線程的常用方法
12.5線程同步
12.6在同步方法中使用wait()、notify()和notifyAll()方法
12.7線程聯(lián)合
12.8上機(jī)實(shí)踐
習(xí)題
第13章Java網(wǎng)絡(luò)編程
13.1URL類
13.1.1URL的構(gòu)造方法
13.1.2讀取URL中的資源
13.2InetAddress類
13.2.1地址的表示
13.2.2獲取地址
13.3套接字
13.3.1套接字概述
13.3.2客戶端套接字
13.3.3ServerSocket對(duì)象與服務(wù)器端套接字
13.3.4使用多線程技術(shù)
13.4UDP數(shù)據(jù)報(bào)
13.4.1發(fā)送數(shù)據(jù)包
13.4.2接收數(shù)據(jù)包
13.5廣播數(shù)據(jù)報(bào)
13.6Java遠(yuǎn)程調(diào)用(RMI)
13.6.1遠(yuǎn)程對(duì)象及其代理
13.6.2RMI的設(shè)計(jì)細(xì)節(jié)
13.7上機(jī)實(shí)踐
習(xí)題
第14章JDBC數(shù)據(jù)庫操作
14.1Derby數(shù)據(jù)庫
14.2在命令行連接內(nèi)置Derby數(shù)據(jù)庫
14.2.1啟動(dòng)ij環(huán)境
14.2.2連接內(nèi)置Derby數(shù)據(jù)庫
14.2.3操作表
14.2.4Derby數(shù)據(jù)庫常用的基本數(shù)據(jù)類型
14.3在命令行連接網(wǎng)絡(luò)Derby數(shù)據(jù)庫
14.3.1啟動(dòng)Derby數(shù)據(jù)庫服務(wù)器
14.3.2連接網(wǎng)絡(luò)Derby數(shù)據(jù)庫
14.4JDBC
14.4.1連接內(nèi)置Derby數(shù)據(jù)庫
14.4.2連接網(wǎng)絡(luò)Derby數(shù)據(jù)庫
14.5查詢操作
14.5.1順序查詢
14.5.2控制游標(biāo)
14.5.3條件與排序查詢
14.6更新、添加與刪除操作
14.7使用預(yù)處理語句
14.7.1預(yù)處理語句優(yōu)點(diǎn)
14.7.2使用通配符
14.8事務(wù)
14.8.1事務(wù)及處理
14.8.2JDBC事務(wù)處理步驟
14.9上機(jī)實(shí)踐
習(xí)題
參考文獻(xiàn)