內 容 簡 介全書共分為13章,主要內容包括Java語言概述、Java基礎語法、面向對象編程、異常處理、API常用類的使用、多線程機制、泛型、集合框架、I/O編程、網絡編程、Swing編程、標注和反射等。本書通俗易懂、術語表述嚴謹規范、配有典型實用的示例代碼和深入透徹的問題剖析。本書既可以作為普通高等院校的教材,也可以作為職業培訓機構的教程及Java編程愛好者的自學用書。目 錄
第1章 Java概述 1
1.1 Java語言簡介 2
1.1.1 Java語言發展簡史 2
1.1.2 Java語言的特性 3
1.2 Java技術的核心 5
1.2.1 Java虛擬機 5
1.2.2 垃圾回收機制 5
1.3 Java平臺體系結構 5
1.4 搭建Java程序的開發環境 7
1.4.1 JDK的安裝和配置 7
1.4.2 Eclipse的安裝和使用 11
1.5 Java程序開發步驟 15
1.5.1 編輯Java源代碼 15
1.5.2 編譯Java程序 16
1.5.3 運行Java程序 17
1.6 Java程序的裝載和執行過程 18
1.6.1 裝載程序 19
1.6.2 檢驗程序 19
1.6.3 執行程序 19
1.7 上機實訓 19
本章習題 19
第2章 Java語言的基礎語法 21
2.1 Java程序的基本結構 22
2.1.1 代碼框架 22
2.1.2 注釋 23
2.1.3 標識符 24
2.1.4 關鍵字 24
2.2 數 據 類 型 24
2.2.1 整數型 25
2.2.2 浮點型 25
2.2.3 字符型 26
2.2.4 布爾型 27
2.3 變量 27
2.3.1 變量的聲明、初始化和使用 27
2.3.2 變量的作用域 28
2.4 數據類型間的轉換 29
2.4.1 自動轉換 29
2.4.2 強制轉換 29
2.5 運算符 30
2.5.1 算術運算符 30
2.5.2 賦值運算符 31
2.5.3 關系運算符 32
2.5.4 邏輯運算符 32
2.5.5 三目運算符 33
2.5.6 位運算符 33
2.5.7 表達式 35
2.5.8 表達式類型的自動提升 35
2.5.9 運算符優先級 36
2.6 流程控制 36
2.6.1 順序語句 37
2.6.2 條件語句 37
2.6.3 循環語句 43
2.6.4 使用break和continue控制
循環語句 46
2.6.5 流程控制綜合應用 48
2.7 數組 50
2.7.1 一維數組 50
2.7.2 多維數組 53
2.8 上機實訓 56
本章習題 57
第3章 面向對象編程(上) 59
3.1 面向對象編程概述 60
3.1.1 面向過程的設計思想 60
3.1.2 面向對象的設計思想 61
3.1.3 類和對象 61
3.2 封裝類 62
3.2.1 定義屬性 63
3.2.2 定義方法 64
3.2.3 定義構造器 65
3.3 對象的創建和使用 68
3.3.1 對象的創建 68
3.3.2 屬性的初始化 69
3.3.3 對象的使用 69
3.3.4 對象的回收 70
3.4 深入理解方法 70
3.4.1 方法的參數傳遞 70
3.4.2 方法重載 72
3.4.3 方法的可變參數 73
3.4.4 遞歸方法 74
3.5 this關鍵字 75
3.6 屬性、參數和局部變量的關系 77
3.7 JavaBean 77
3.8 包 78
3.8.1 聲明包 78
3.8.2 編譯帶包的類 79
3.8.3 使用帶包的類 79
3.8.4 JDK中的常用包 80
3.9 文檔注釋 81
3.9.1 在源代碼中插入文檔注釋 81
3.9.2 常規標記 81
3.9.3 類或接口注釋 82
3.9.4 方法注釋 83
3.9.5 屬性注釋 84
3.9.6 包和概述注釋 85
3.9.7 提取注釋生成幫助文檔 85
3.10 上機實訓 86
本章習題 87
第4章 面向對象編程(下) 89
4.1 類的繼承 90
4.1.1 繼承說明 91
4.1.2 繼承的優點 92
4.1.3 繼承設計 92
4.2 super關鍵字 93
4.3 訪問控制符 93
4.4 常用修飾符 96
4.4.1 static 96
4.4.2 final 100
4.5 方法覆蓋 102
4.6 多態 104
4.6.1 對象變量多態 104
4.6.2 多態方法 107
4.6.3 多態參數 108
4.7 抽象類 110
4.8 接口 112
4.8.1 接口的定義和實現 113
4.8.2 接口中的變量 115
4.8.3 多重接口 115
4.9 嵌套類 116
4.9.1 嵌套類的定義語法 117
4.9.2 內部類 117
4.9.3 靜態嵌套類 120
4.10 JAR文件 121
4.10.1 jar命令 121
4.10.2 清單文件 122
4.10.3 創建可執行的JAR文件 122
4.11 上機實訓 123
本章習題 124
第5章 異常 129
5.1 異常概述 130
5.2 異常類的層次結構 131
5.2.1 Error類 132
5.2.2 Exception類 132
5.3 異常的處理 133
5.3.1 try、catch和finally語句塊 133
5.3.2 輸出異常信息 135
5.3.3 異常棧跟蹤 137
5.4 聲明異常 138
5.5 手動拋出異常 139
5.6 自定義異常 140
5.6.1 定義異常類 140
5.6.2 使用自定義異常類 141
5.7 JDK 7新增的異常處理語法 141
5.7.1 try-with-resources語句 141
5.7.2 catch多個Exception 142
5.8 處理異常時的建議 143
5.9 上機實訓 143
本章習題 143
第6章 Java SE API常用類 147
6.1 Java SE API文檔概述 148
6.1.1 下載Java SE API文檔 148
6.1.2 Java SE API文檔的結構 149
6.1.3 使用Java SE API文檔 150
6.2 java.lang包 151
6.2.1 Object類 151
6.2.2 基本數據類型的包裝類 156
6.2.3 枚舉類型和枚舉類 157
6.2.4 Math類 160
6.2.5 System類 161
6.2.6 Runtime類 165
6.2.7 String類 168
6.2.8 StringBuilder和
StringBuffer類 173
6.3 java.util包 174
6.3.1 Random類 175
6.3.2 Arrays類 176
6.3.3 日期和時間相關類 178
6.4 國際化相關類 182
6.4.1 java.util.Locale類 182
6.4.2 java.text.MessageFormat類的
格式化字符串 183
6.4.3 Java程序國際化 183
6.4.4 java.text.NumberFormat類的
格式化數字方法 186
6.4.5 java.text.DateFormat類的
格式化日期時間方法 187
6.5 正則表達式相關類 190
6.5.1 正則表達式語法 190
6.5.2 Java SE中的正則
表達式API 193
6.5.3 字符串類中與正則表達式
相關的方法 195
6.5.4 正則表達式使用示例 195
6.6 大數字操作 197
6.6.1 BigInteger 197
6.6.2 BigDecimal 198
6.7 上機實訓 199
本章習題 200
第7章 多線程 201
7.1 線程概述 202
7.1.1 進程 202
7.1.2 線程 202
7.1.3 多進程和多線程的區別 203
7.2 線程的創建和啟動 203
7.2.1 單線程程序 203
7.2.2 創建新線程 204
7.2.3 啟動線程 205
7.2.4 Thread類的常用方法 207
7.2.5 為什么需要多線程程序 208
7.2.6 線程分類 208
7.3 線程的狀態及轉換 208
7.3.1 新線程 209
7.3.2 可運行的線程 209
7.3.3 被阻塞和處于等待狀態下的
線程 209
7.3.4 被終止的線程 210
7.4 多線程的調度和優先級 210
7.4.1 線程調度原理 210
7.4.2 線程優先級 211
7.5 線程的基本控制 212
7.5.1 線程睡眠 212
7.5.2 線程讓步 213
7.5.3 線程加入 214
7.6 多線程的同步 215
7.6.1 線程安全問題 215
7.6.2 synchronized關鍵字 217
7.6.3 對象鎖 219
7.6.4 死鎖 220
7.7 線程交互 221
7.7.1 Object提供的wait和
notify方法 221
7.7.2 生產者-消費者問題 222
7.8 用Timer類調度任務 224
7.9 上機實訓 225
本章習題 226
第8章 使用泛型 229
8.1 泛型概述 230
8.2 泛型類和接口的定義及使用 232
8.2.1 定義泛型類和接口 232
8.2.2 從泛型類派生子類 233
8.2.3 實現泛型接口 234
8.3 有界類型參數 234
8.4 泛型方法 236
8.5 類型參數的通配符 237
8.6 擦除 237
8.7 泛型的局限 239
8.8 上機實訓 240
第9章 Java集合框架 241
9.1 Java集合框架概述 242
9.2 Collection接口及Iterator接口 242
9.2.1 Collection接口 242
9.2.2 Iterator接口 243
9.3 Set接口及實現類 244
9.3.1 Set接口 244
9.3.2 HashSet實現類 245
9.3.3 LinkedHashSet實現類 248
9.4 List接口及實現類 249
9.4.1 List接口 249
9.4.2 ArrayList類 250
9.4.3 LinkedList實現類 251
9.5 Map接口及實現類 253
9.5.1 Map接口 253
9.5.2 HashMap類 254
9.5.3 LinkedHashMap類 255
9.6 遺留的集合類 256
9.6.1 Vector類 256
9.6.2 Stack類 257
9.6.3 Hashtable類 258
9.6.4 Properties類 258
9.7 排序集合 259
9.7.1 Comparable接口 260
9.7.2 TreeSet類 261
9.7.3 Comparator接口 262
9.7.4 TreeMap類 264
9.8 集合工具類 265
9.8.1 算法操作 265
9.8.2 同步控制 267
9.9 如何選擇合適的集合類 267
9.10 上機實訓 268
本章習題 268
第10章 I/O流 271
10.1 File類 272
10.1.1 文件和目錄 272
10.1.2 Java對文件的抽象 272
10.2 I/O原理 276
10.3 流類概述 277
10.3.1 I/O流分類 277
10.3.2 抽象流類 277
10.4 文件流 280
10.4.1 FileInputStream和
FileOutputStream 280
10.4.2 FileReader和FileWriter 284
10.5 緩沖流 285
10.6 轉換流 286
10.6.1 InputStreamReader 286
10.6.2 OutputStreamWriter 288
10.7 數據流 288
10.8 打印流 289
10.9 對象流 291
10.9.1 序列化和反序列化操作 292
10.9.2 序列化的版本標識 294
10.10 隨機存取文件流 295
10.11 上機實訓 297
本章習題 298
第11章 網絡編程 301
11.1 網絡編程基礎知識 302
11.1.1 網絡基本概念 302
11.1.2 網絡傳輸協議 304
11.2 Java與網絡 306
11.2.1 InetAddress類 306
11.2.2 URL類 308
11.2.3 URLConnection類 310
11.2.4 URLEncoder和
URLDecoder類 314
11.3 Java網絡編程 316
11.3.1 套接字 316
11.3.2 基于TCP協議的
網絡編程 316
11.3.3 基于UDP協議的
網絡編程 324
11.4 上機實訓 329
本章習題 330
第12章 GUI編程 331
12.1 Swing概述 332
12.1.1 Swing是什么 332
12.1.2 Swing架構 332
12.2 Swing容器 333
12.2.1 頂層容器 333
12.2.2 通用容器 337
12.2.3 專用容器 344
12.3 繪圖 345
12.3.1 2D圖形 346
12.3.2 顏色 348
12.3.3 文本和字體 348
12.3.4 圖像 349
12.4 Swing組件 350
12.4.1 Swing組件的層次結構 351
12.4.2 按鈕 352
12.4.3 文本組件 354
12.4.4 不可編輯信息顯示組件 357
12.4.5 菜單相關 360
12.4.6 其他組件 363
12.5 布局管理器 364
12.5.1 FlowLayout 365
12.5.2 BorderLayout 367
12.5.3 GridLayout 368
12.6 處理GUI事件 369
12.6.1 Java SE事件模型 370
12.6.2 GUI事件分類 373
12.6.3 事件適配器 374
12.7 切換Swing觀感 376
12.8 上機實訓 378
本章習題 379
第13章 標注和反射 381
13.1 標注 382
13.1.1 標注概述 382
13.1.2 使用JDK內置的標注 382
13.1.3 自定義標注 386
13.1.4 標注的標注 387
13.2 反射 390
13.2.1 Java反射API 391
13.2.2 Class類 391
13.2.3 獲取類信息 393
13.2.4 生成對象 396
13.2.5 調用方法 398
13.2.6 訪問成員變量的值 400
13.2.7 操作數組 401
13.2.8 獲取泛型信息 403
13.2.9 使用反射獲取標注信息 404
13.2.10 反射與代理 406
13.3 上機實訓 410
本章習題 410
參考答案 413