本書是普通高等教育“十一五”國家級規(guī)劃教材《Java語言程序設計》的第2版。全書共11章:第1章介紹Java語言的基本知識和基本概念;第2章介紹Java語言的基本語法、運算符和基本語句等語言結構化程序設計內容;第3章介紹Java語言面向對象程序設計的主要內容;第4章介紹Java語言的異常處理;第5章介紹Java語言的圖形用戶界面技術;第6章介紹Java語言與輸入/輸出有關的流和文件;第7章介紹Java語言的多線程;第8章介紹Java語言與數據結構和數據處理有關的類和接口;第9章介紹Java Applet程序設計;第10章介紹Java語言的網絡與通信程序設計;第11章介紹Java語言的JDBC技術。本書既介紹了Java語言的基本語法和基本概念,又把Java SE 5版本到Java SE 8版本中新出現的概念進行了補充和講解。本書適合作為普通高等院校計算機科學與技術、軟件工程及相關專業(yè)學生的課程教材,也適合作為其他專業(yè)的本科生、研究生及各級計算機專業(yè)技術人員的參考書。
姜志強,男,吉林大學計算機科學與技術學院副教授。主持的《軟件工程教學系統(tǒng)》課程獲得吉林省教育廳,教學研究成果二等獎;《管理信息系統(tǒng)》課程獲得吉林省教育廳,教育技術成果優(yōu)秀獎;《Java語言程序設計》課程獲得吉林大學教學成果三等獎。
目錄
第1章 Java語言基礎 1
1.1 什么是Java語言 1
1.1.1 概述 1
1.1.2 歷史與發(fā)展 1
1.1.3 Java語言的主要特點 3
1.1.4 Java Application與Java Applet程序 5
1.1.5 豐富的類庫 5
1.1.6 Java語言與C語言和C++語言的比較 5
1.2 基本Java Application程序的結構 6
1.2.1 Java Application程序的基本結構和運行 6
1.2.2 用面向對象程序設計的方式實現Java語言程序 8
1.2.3 用圖形界面的方式實現Java語言程序 9
1.3 幾個重要的Java概念 10
1.3.1 Java運行時系統(tǒng) 10
1.3.2 Java虛擬機 10
1.3.3 自動垃圾收集機制 11
1.3.4 Java語言程序的代碼安全機制 12
1.4 Java API文檔的使用與學習 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
本章知識點 15
習題1 15
實驗1 16
第2章 Java語言結構化程序設計 17
2.1 標識符、關鍵字和數據類型 17
2.1.1 注釋與程序段 17
2.1.2 字符集和標識符 18
2.1.3 Java語言的關鍵字 18
2.1.4 Java語言基本數據類型 19
2.1.5 引用數據類型 21
2.1.6 常量 21
2.1.7 變量的聲明和賦值 22
2.2 運算符與表達式 23
2.2.1 運算符 23
2.2.2 Java語言運算符的優(yōu)先級與結合性 26
2.2.3 表達式 26
2.3 語句與流程控制 27
2.3.1 結構化程序設計中的3種控制結構 27
2.3.2 選擇語句 28
2.3.3 循環(huán)語句 33
2.3.4 break語句和continue語句 36
2.3.5 return語句 40
2.4 數組 40
2.4.1 數組的聲明、創(chuàng)建、初始化與釋放 41
2.4.2 多維數組 43
2.4.3 不等長多維數組 45
2.4.4 數組邊界與數組元素的訪問 45
2.5 結構化程序設計實例選講 47
本章知識點 53
習題2 55
實驗2 57
第3章 Java語言面向對象程序設計 58
3.1 面向對象程序設計 58
3.1.1 程序設計思想:結構化與面向對象 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 構造方法 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 形參和實參 73
3.4.3 this 74
3.4.4 訪問權限 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 類繼承機制在程序設計中的作用 81
3.6 接口 81
3.6.1 接口的定義 82
3.6.2 接口體的定義 82
3.6.3 接口的繼承 83
3.6.4 接口的實現 83
3.6.5 接口代碼的存儲 83
3.6.6 Java 8對接口定義的擴展修訂 84
3.7 多態(tài)性的討論 85
3.7.1 多態(tài)性的概念 85
3.7.2 繼承層次結構中對象間的關系 85
3.8 內部類與嵌套類 90
3.8.1 內部類與嵌套類的概念 90
3.8.2 內部類與嵌套類的兩種實現形式 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 基本數據類型封裝類 92
3.9.6 數組操作工具類Arrays 94
3.9.7 String類和StringBuffer類 94
3.9.8 Calendar類和GregorianCalendar類 95
3.10 Java Application程序的完整結構 95
本章知識點 105
習題3 107
實驗3 109
第4章 異常處理 110
4.1 異常與異常類 110
4.1.1 Java語言中的異常概念 110
4.1.2 Java類庫中的異常類及其層次結構 112
4.2 異常處理的兩種方式 113
4.2.1 捕獲和處理異常 113
4.2.2 Java SE 7版本對于捕獲異常的改進 115
4.2.3 拋出異常 116
4.2.4 創(chuàng)建自己的異常類 117
4.2.5 Throwable類中的異常信息獲取方法 119
本章知識點 119
習題4 120
第5章 圖形用戶界面 121
5.1 Java語言圖形用戶界面概述 121
5.1.1 平臺無關性圖形用戶界面組件的實現 121
5.1.2 GUI組件的類層次結構 122
5.1.3 圖形用戶界面的功能和構建 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語言事件處理機制 141
5.3.1 Java語言事件處理機制概述 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 菜單相關組件 168
5.4.9 顯示效果修飾類 169
本章知識點 178
習題5 179
實驗5 181
第6章 流和文件 182
6.1 流和輸入/輸出相關類 182
6.1.1 流的概念 182
6.1.2 輸入流和輸出流類 182
6.2 數據流 183
6.2.1 標準輸入流和輸出流 183
6.2.2 基于字節(jié)的輸入流和輸出流 183
6.2.3 基于字符的輸入流和輸出流 185
6.2.4 基本數據類型的輸入和輸出 186
6.2.5 對象的輸入和輸出 187
6.2.6 字節(jié)數組的輸入和輸出 187
6.3 文件 187
6.3.1 順序訪問文件 188
6.3.2 隨機訪問文件 194
本章知識點 201
習題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 通過實現Runnable接口獲得線程體 209
7.3 線程調度 212
7.3.1 線程的優(yōu)先級 212
7.3.2 線程同步 213
本章知識點 217
習題7 218
第8章 數據結構和數據處理 219
8.1 基本數據結構的構造 219
8.1.1 自引用類 219
8.1.2 構造鏈表 220
8.1.3 構造棧 223
8.1.4 構造隊列 225
8.1.5 構造二叉樹 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 隊列 246
8.4.7 映射 247
8.5 注解 249
8.5.1 什么是注解 249
8.5.2 類庫中的注解 250
8.5.3 定義注解的基本語法 250
8.5.4 元注解 251
本章知識點 252
習題8 253
第9章 Java Applet程序設計 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程序的運行環(huán)境和運行方式 260
9.2.3 Java Applet程序的執(zhí)行步驟和生命周期 260
9.2.4 Java Applet程序的安全機制 260
9.3 Java Applet程序的編寫和運行 261
9.3.1 Java Applet程序的主要行為 261
9.3.2 Java Applet程序的編寫 262
9.3.3 Java Applet程序的運行 266
9.3.4 Applet類與JApplet類 267
9.4 Java Applet程序的多媒體設計 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參數 279
9.5.3 Java Applet程序與其他程序的通信 281
9.5.4 Java Application與Java Applet程序的簡要比較 281
本章知識點 281
習題9 282
實驗9 283
第10章 網絡與通信程序設計 284
10.1 IP地址與網絡指針 284
10.1.1 InetAddress類 284
10.1.2 URL類 287
10.2 Internet通信 290
10.2.1 Socket通信機制 290
10.2.2 Datagram通信機制 295
本章知識點 298
習題10 298
第11章 JDBC技術 299
11.1 關系型數據庫的驅動與連接 299
11.1.1 JDBC技術概述 299
11.1.2 JDBC的驅動管理器 300
11.1.3 JDBC驅動程序的類型 300
11.2 使用SQL指令操作數據庫 301
11.2.1 載入JDBC驅動程序 301
11.2.2 連接到DBMS 301
11.2.3 創(chuàng)建并執(zhí)行語句 302
11.2.4 處理DBMS返回的數據 303
11.2.5 終止與DBMS的連接 304
11.2.6 一個完整的實例 305
本章知識點 311
習題11 311
附錄A Java語言關鍵字表 312
附錄B Java語言運算符優(yōu)先級和結合性表 313
附錄C 事件、事件監(jiān)聽器、事件適配器對應表 315
參考文獻 316