本書是普通高等教育“十一五”國家級規(guī)劃教材《Java語言程序設(shè)計(jì)》的第2版。全書共11章:第1章介紹Java語言的基本知識和基本概念;第2章介紹Java語言的基本語法、運(yùn)算符和基本語句等語言結(jié)構(gòu)化程序設(shè)計(jì)內(nèi)容;第3章介紹Java語言面向?qū)ο蟪绦蛟O(shè)計(jì)的主要內(nèi)容;第4章介紹Java語言的異常處理;第5章介紹Java語言的圖形用戶界面技術(shù);第6章介紹Java語言與輸入/輸出有關(guān)的流和文件;第7章介紹Java語言的多線程;第8章介紹Java語言與數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)處理有關(guān)的類和接口;第9章介紹Java Applet程序設(shè)計(jì);第10章介紹Java語言的網(wǎng)絡(luò)與通信程序設(shè)計(jì);第11章介紹Java語言的JDBC技術(shù)。本書既介紹了Java語言的基本語法和基本概念,又把Java SE 5版本到Java SE 8版本中新出現(xiàn)的概念進(jìn)行了補(bǔ)充和講解。本書適合作為普通高等院校計(jì)算機(jī)科學(xué)與技術(shù)、軟件工程及相關(guān)專業(yè)學(xué)生的課程教材,也適合作為其他專業(yè)的本科生、研究生及各級計(jì)算機(jī)專業(yè)技術(shù)人員的參考書。
姜志強(qiáng),男,吉林大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院副教授。主持的《軟件工程教學(xué)系統(tǒng)》課程獲得吉林省教育廳,教學(xué)研究成果二等獎;《管理信息系統(tǒng)》課程獲得吉林省教育廳,教育技術(shù)成果優(yōu)秀獎;《Java語言程序設(shè)計(jì)》課程獲得吉林大學(xué)教學(xué)成果三等獎。
目錄
第1章 Java語言基礎(chǔ) 1
1.1 什么是Java語言 1
1.1.1 概述 1
1.1.2 歷史與發(fā)展 1
1.1.3 Java語言的主要特點(diǎn) 3
1.1.4 Java Application與Java Applet程序 5
1.1.5 豐富的類庫 5
1.1.6 Java語言與C語言和C++語言的比較 5
1.2 基本Java Application程序的結(jié)構(gòu) 6
1.2.1 Java Application程序的基本結(jié)構(gòu)和運(yùn)行 6
1.2.2 用面向?qū)ο蟪绦蛟O(shè)計(jì)的方式實(shí)現(xiàn)Java語言程序 8
1.2.3 用圖形界面的方式實(shí)現(xiàn)Java語言程序 9
1.3 幾個重要的Java概念 10
1.3.1 Java運(yùn)行時系統(tǒng) 10
1.3.2 Java虛擬機(jī) 10
1.3.3 自動垃圾收集機(jī)制 11
1.3.4 Java語言程序的代碼安全機(jī)制 12
1.4 Java API文檔的使用與學(xué)習(xí) 12
1.5 Java開發(fā)工具簡介 12
1.5.1 JDK 13
1.5.2 NetBeans 13
1.5.3 Eclipse 13
1.5.4 JBuilder 13
1.5.5 JCreator 14
1.5.6 Symantec Cafe 14
1.5.7 IBM Visual Age for Java 14
1.5.8 Java WorkShop 14
本章知識點(diǎn) 15
習(xí)題1 15
實(shí)驗(yàn)1 16
第2章 Java語言結(jié)構(gòu)化程序設(shè)計(jì) 17
2.1 標(biāo)識符、關(guān)鍵字和數(shù)據(jù)類型 17
2.1.1 注釋與程序段 17
2.1.2 字符集和標(biāo)識符 18
2.1.3 Java語言的關(guān)鍵字 18
2.1.4 Java語言基本數(shù)據(jù)類型 19
2.1.5 引用數(shù)據(jù)類型 21
2.1.6 常量 21
2.1.7 變量的聲明和賦值 22
2.2 運(yùn)算符與表達(dá)式 23
2.2.1 運(yùn)算符 23
2.2.2 Java語言運(yùn)算符的優(yōu)先級與結(jié)合性 26
2.2.3 表達(dá)式 26
2.3 語句與流程控制 27
2.3.1 結(jié)構(gòu)化程序設(shè)計(jì)中的3種控制結(jié)構(gòu) 27
2.3.2 選擇語句 28
2.3.3 循環(huán)語句 33
2.3.4 break語句和continue語句 36
2.3.5 return語句 40
2.4 數(shù)組 40
2.4.1 數(shù)組的聲明、創(chuàng)建、初始化與釋放 41
2.4.2 多維數(shù)組 43
2.4.3 不等長多維數(shù)組 45
2.4.4 數(shù)組邊界與數(shù)組元素的訪問 45
2.5 結(jié)構(gòu)化程序設(shè)計(jì)實(shí)例選講 47
本章知識點(diǎn) 53
習(xí)題2 55
實(shí)驗(yàn)2 57
第3章 Java語言面向?qū)ο蟪绦蛟O(shè)計(jì) 58
3.1 面向?qū)ο蟪绦蛟O(shè)計(jì) 58
3.1.1 程序設(shè)計(jì)思想:結(jié)構(gòu)化與面向?qū)ο?58
3.1.2 封閉:對象、類和消息 59
3.1.3 繼承 59
3.1.4 多態(tài) 59
3.2 類與對象 59
3.2.1 類聲明 59
3.2.2 變量成員 60
3.2.3 方法成員 61
3.2.4 聲明的作用域 62
3.2.5 主類和主方法 62
3.2.6 構(gòu)造方法 62
3.2.7 finalize()方法 63
3.2.8 方法重載 63
3.2.9 對象 66
3.2.10 源程序文件的組織與存儲 70
3.3 包 71
3.3.1 package語句 71
3.3.2 import語句 71
3.4 成員的訪問 72
3.4.1 變量成員和方法成員的訪問 72
3.4.2 形參和實(shí)參 73
3.4.3 this 74
3.4.4 訪問權(quán)限 74
3.4.5 static屬性:類變量成員和類方法成員 75
3.5 父類、子類和繼承 76
3.5.1 創(chuàng)建子類 77
3.5.2 變量成員的隱藏和方法重寫 77
3.5.3 super 78
3.5.4 final屬性:final類和final方法 81
3.5.5 abstract屬性:abstract類和abstract方法 81
3.5.6 類繼承機(jī)制在程序設(shè)計(jì)中的作用 81
3.6 接口 81
3.6.1 接口的定義 82
3.6.2 接口體的定義 82
3.6.3 接口的繼承 83
3.6.4 接口的實(shí)現(xiàn) 83
3.6.5 接口代碼的存儲 83
3.6.6 Java 8對接口定義的擴(kuò)展修訂 84
3.7 多態(tài)性的討論 85
3.7.1 多態(tài)性的概念 85
3.7.2 繼承層次結(jié)構(gòu)中對象間的關(guān)系 85
3.8 內(nèi)部類與嵌套類 90
3.8.1 內(nèi)部類與嵌套類的概念 90
3.8.2 內(nèi)部類與嵌套類的兩種實(shí)現(xiàn)形式 90
3.9 Java類庫中常用類的介紹 91
3.9.1 Object類 91
3.9.2 System類 92
3.9.3 Class類 92
3.9.4 Math類 92
3.9.5 基本數(shù)據(jù)類型封裝類 92
3.9.6 數(shù)組操作工具類Arrays 94
3.9.7 String類和StringBuffer類 94
3.9.8 Calendar類和GregorianCalendar類 95
3.10 Java Application程序的完整結(jié)構(gòu) 95
本章知識點(diǎn) 105
習(xí)題3 107
實(shí)驗(yàn)3 109
第4章 異常處理 110
4.1 異常與異常類 110
4.1.1 Java語言中的異常概念 110
4.1.2 Java類庫中的異常類及其層次結(jié)構(gòu) 112
4.2 異常處理的兩種方式 113
4.2.1 捕獲和處理異常 113
4.2.2 Java SE 7版本對于捕獲異常的改進(jìn) 115
4.2.3 拋出異常 116
4.2.4 創(chuàng)建自己的異常類 117
4.2.5 Throwable類中的異常信息獲取方法 119
本章知識點(diǎn) 119
習(xí)題4 120
第5章 圖形用戶界面 121
5.1 Java語言圖形用戶界面概述 121
5.1.1 平臺無關(guān)性圖形用戶界面組件的實(shí)現(xiàn) 121
5.1.2 GUI組件的類層次結(jié)構(gòu) 122
5.1.3 圖形用戶界面的功能和構(gòu)建 123
5.2 Java語言布局管理器 126
5.2.1 FlowLayout布局管理器 126
5.2.2 BorderLayout布局管理器 128
5.2.3 GridLayout布局管理器 130
5.2.4 CardLayout布局管理器 133
5.2.5 GridBagLayout布局管理器 136
5.2.6 javax.swing包中定義的布局管理器 140
5.2.7 無布局管理器 141
5.3 Java語言事件處理機(jī)制 141
5.3.1 Java語言事件處理機(jī)制概述 141
5.3.2 事件與事件類 142
5.3.3 事件監(jiān)聽器接口及適配器類 143
5.4 Swing組件的使用 158
5.4.1 Swing組件的分類 158
5.4.2 頂層容器 158
5.4.3 中間容器 159
5.4.4 顯示提示組件 161
5.4.5 選擇交互組件 163
5.4.6 按鈕類組件 163
5.4.7 文本編輯類組件 168
5.4.8 菜單相關(guān)組件 168
5.4.9 顯示效果修飾類 169
本章知識點(diǎn) 178
習(xí)題5 179
實(shí)驗(yàn)5 181
第6章 流和文件 182
6.1 流和輸入/輸出相關(guān)類 182
6.1.1 流的概念 182
6.1.2 輸入流和輸出流類 182
6.2 數(shù)據(jù)流 183
6.2.1 標(biāo)準(zhǔn)輸入流和輸出流 183
6.2.2 基于字節(jié)的輸入流和輸出流 183
6.2.3 基于字符的輸入流和輸出流 185
6.2.4 基本數(shù)據(jù)類型的輸入和輸出 186
6.2.5 對象的輸入和輸出 187
6.2.6 字節(jié)數(shù)組的輸入和輸出 187
6.3 文件 187
6.3.1 順序訪問文件 188
6.3.2 隨機(jī)訪問文件 194
本章知識點(diǎn) 201
習(xí)題6 201
第7章 多線程 202
7.1 并發(fā)性、線程與多線程 202
7.1.1 并發(fā)性的概念 202
7.1.2 線程的狀態(tài)與生命周期 202
7.2 獲得線程體的兩種方法 203
7.2.1 Thread類和Runnable接口 203
7.2.2 通過繼承Thread類獲得線程體 204
7.2.3 通過實(shí)現(xiàn)Runnable接口獲得線程體 209
7.3 線程調(diào)度 212
7.3.1 線程的優(yōu)先級 212
7.3.2 線程同步 213
本章知識點(diǎn) 217
習(xí)題7 218
第8章 數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)處理 219
8.1 基本數(shù)據(jù)結(jié)構(gòu)的構(gòu)造 219
8.1.1 自引用類 219
8.1.2 構(gòu)造鏈表 220
8.1.3 構(gòu)造棧 223
8.1.4 構(gòu)造隊(duì)列 225
8.1.5 構(gòu)造二叉樹 226
8.2 泛型 227
8.2.1 泛型的概念 227
8.2.2 泛型類 229
8.2.3 泛型接口 230
8.2.4 泛型方法 231
8.2.5 泛型通配符 231
8.2.6 泛型的上下邊界 234
8.3 枚舉 234
8.3.1 枚舉的定義 234
8.3.2 Enum<E>類 235
8.3.3 枚舉的使用 235
8.4 容器集合類 237
8.4.1 For-each遍歷與迭代器 237
8.4.2 迭代器 238
8.4.3 容器 239
8.4.4 列表 241
8.4.5 集合 244
8.4.6 隊(duì)列 246
8.4.7 映射 247
8.5 注解 249
8.5.1 什么是注解 249
8.5.2 類庫中的注解 250
8.5.3 定義注解的基本語法 250
8.5.4 元注解 251
本章知識點(diǎn) 252
習(xí)題8 253
第9章 Java Applet程序設(shè)計(jì) 254
9.1 HTML與WWW 254
9.1.1 HTML 254
9.1.2 WWW 257
9.1.3 URI與URL 258
9.1.4 XML 259
9.2 Java Applet基本概念 259
9.2.1 什么是Java Applet 259
9.2.2 Java Applet程序的運(yùn)行環(huán)境和運(yùn)行方式 260
9.2.3 Java Applet程序的執(zhí)行步驟和生命周期 260
9.2.4 Java Applet程序的安全機(jī)制 260
9.3 Java Applet程序的編寫和運(yùn)行 261
9.3.1 Java Applet程序的主要行為 261
9.3.2 Java Applet程序的編寫 262
9.3.3 Java Applet程序的運(yùn)行 266
9.3.4 Applet類與JApplet類 267
9.4 Java Applet程序的多媒體設(shè)計(jì) 268
9.4.1 圖形繪制 269
9.4.2 字符串繪制 269
9.4.3 圖像繪制 270
9.4.4 動畫繪制 272
9.4.5 聲音播放 275
9.5 Java Applet程序的交互功能與通信功能 279
9.5.1 Java Applet程序的交互功能 279
9.5.2 讀取HTML參數(shù) 279
9.5.3 Java Applet程序與其他程序的通信 281
9.5.4 Java Application與Java Applet程序的簡要比較 281
本章知識點(diǎn) 281
習(xí)題9 282
實(shí)驗(yàn)9 283
第10章 網(wǎng)絡(luò)與通信程序設(shè)計(jì) 284
10.1 IP地址與網(wǎng)絡(luò)指針 284
10.1.1 InetAddress類 284
10.1.2 URL類 287
10.2 Internet通信 290
10.2.1 Socket通信機(jī)制 290
10.2.2 Datagram通信機(jī)制 295
本章知識點(diǎn) 298
習(xí)題10 298
第11章 JDBC技術(shù) 299
11.1 關(guān)系型數(shù)據(jù)庫的驅(qū)動與連接 299
11.1.1 JDBC技術(shù)概述 299
11.1.2 JDBC的驅(qū)動管理器 300
11.1.3 JDBC驅(qū)動程序的類型 300
11.2 使用SQL指令操作數(shù)據(jù)庫 301
11.2.1 載入JDBC驅(qū)動程序 301
11.2.2 連接到DBMS 301
11.2.3 創(chuàng)建并執(zhí)行語句 302
11.2.4 處理DBMS返回的數(shù)據(jù) 303
11.2.5 終止與DBMS的連接 304
11.2.6 一個完整的實(shí)例 305
本章知識點(diǎn) 311
習(xí)題11 311
附錄A Java語言關(guān)鍵字表 312
附錄B Java語言運(yùn)算符優(yōu)先級和結(jié)合性表 313
附錄C 事件、事件監(jiān)聽器、事件適配器對應(yīng)表 315
參考文獻(xiàn) 316