目 錄
第I篇 基礎 入 門
第1章 揭開Java的神秘面紗——我的
第一個Java程序 3
1.1 Java簡介 4
1.1.1 了解Java語言 4
1.1.2 Java語言的特性 4
1.1.3 Java語言的核心技術 6
1.1.4 Java語言的工作原理 7
1.2 搭建Java環境 8
1.2.1 JDK簡介 8
1.2.2 JDK安裝 9
1.2.3 JDK配置 12
1.2.4 測試JDK 14
1.3 第一個Java程序 14
1.4 MyEclipse的安裝 16
1.4.1 MyEclipse的下載 16
1.4.2 MyEclipse的安裝 17
1.5 MyEclipse的使用 18
1.5.1 創建Java項目 18
1.5.2 創建Java程序 19
1.5.3 編寫Java程序 20
1.5.4 運行Java程序 21
1.5.5 調試Java程序 21
1.6 如何學好Java 23
1.7 大神解惑 24
1.8 跟我學上機 24
第2章 零基礎開始學習——Java基本
語法 25
2.1 剖析第一個Java程序 26
2.2 常量與變量 28
2.2.1 常量 28
2.2.2 變量 29
2.3 數據類型 33
2.3.1 整數型 34
2.3.2 浮點型 36
2.3.3 字符型 37
2.3.4 布爾型 38
2.3.5 類型轉換 39
2.4 運算符 40
2.4.1 賦值運算符 40
2.4.2 算術運算符 41
2.4.3 比較運算符 42
2.4.4 條件運算符 43
2.4.5 邏輯運算符 43
2.4.6 位運算符 44
2.4.7 自增和自減運算符 47
2.4.8 運算符優先級 48
2.5 流程控制 48
2.5.1 分支控制 48
2.5.2 循環控制 54
2.5.3 跳轉語句 57
2.6 Java代碼編寫規范 60
2.7 大神解惑 62
2.8 跟我學上機 62
第3章 主流的編程思想——認識面向
對象編程 63
3.1 面向對象簡介 64
3.1.1 什么是對象 64
3.1.2 面向對象的特征 64
3.2 類和對象 65
3.2.1 類 65
3.2.2 對象 67
3.2.3 構造方法 68
3.2.4 instanceof 關鍵字 70
3.3 修飾符 70
3.3.1 訪問修飾符 71
3.3.2 非訪問修飾符 74
3.4 封裝 78
3.4.1 了解封裝 78
3.4.2 封裝實現 78
3.4.3 this關鍵字 79
3.5 繼承 80
3.5.1 了解繼承 80
3.5.2 繼承實現 83
3.6 多態 84
3.6.1 了解多態 84
3.6.2 重載 86
3.6.3 重寫 88
3.6.4 構造方法重載 90
3.6.5 super關鍵字 92
3.7 大神解惑 94
3.8 跟我學上機 94
第4章 嵌套類的秘密——Java的
內部類 95
4.1 創建內部類 96
4.2 鏈接到外部類 96
4.3 成員內部類 98
4.4 靜態內部類 99
4.5 局部內部類 101
4.6 匿名內部類 103
4.7 大神解惑 104
4.8 跟我學上機 104
第5章 特殊的元素集合——數組
和方法 105
5.1 數組的概念 106
5.2 一維數組 106
5.2.1 數組的聲明 106
5.2.2 數組的內存分配 107
5.2.3 數組的元素 107
5.2.4 數組的賦值 108
5.3 多維數組 108
5.3.1 數組的聲明 108
5.3.2 數組的內存分配 109
5.3.3 數組的元素 109
5.3.4 數組的賦值 110
5.3.5 遍歷數組 111
5.4 數組排序 112
5.4.1 冒泡排序 112
5.4.2 選擇排序 113
5.5 數組在方法中的使用 114
5.6 大神解惑 115
5.7 跟我學上機 116
第6章 不可不說的文本數據——
字符串 117
6.1 String類的本質 118
6.2 String的API應用 119
6.2.1 獲取字符串長度 119
6.2.2 去除字符串的空格 119
6.2.3 字符串分割 120
6.2.4 轉換大小寫 121
6.2.5 字符串截取 122
6.2.6 字符串連接 122
6.2.7 字符串比較 124
6.2.8 字符串查找 127
6.2.9 字符串替換 128
6.3 字符串解析 130
6.3.1 正則表達式語法 130
6.3.2 常用正則表達式 131
6.3.3 正則表達式的實例 131
6.4 字符串的類型轉換 132
6.4.1 字符串轉換為數組 132
6.4.2 基本數據類型轉換為字符串 133
6.4.3 格式化字符串 134
6.5 StringBuffer與StringBuilder 136
6.5.1 介紹StringBuffer與
StringBuilder 136
6.5.2 StringBuilder類的創建 136
6.5.3 StringBuilder類的方法 137
6.5.4 String、StringBuffer與
StringBuilder的區別 141
6.6 Lambda 表達式 142
6.7 大神解惑 143
6.8 跟我學上機 144
第II篇 核心 技 術
第7章 銜接更便利——抽象類
與接口 147
7.1 抽象類和抽象方法 148
7.1.1 抽象類 148
7.1.2 抽象方法 149
7.2 接口概述 150
7.2.1 接口聲明 150
7.2.2 接口默認方法 150
7.2.3 接口與抽象類 151
7.3 接口的多態 151
7.4 抽象類和接口的實例 152
7.4.1 抽象類的實例 152
7.4.2 接口的實例 154
7.5 集合框架 155
7.5.1 接口和實現類 155
7.5.2 Collection接口 156
7.5.3 List接口 158
7.5.4 Set接口 161
7.5.5 Map接口 164
7.6 大神解惑 166
7.7 跟我學上機 166
第8章 不可避免的問題——處理
異常 167
8.1 異常的概念 168
8.2 異常的分類 169
8.3 捕獲異常 170
8.3.1 捕獲異常結構 170
8.3.2 try-catch語句 171
8.3.3 多條catch語句 172
8.3.4 finally語句 173
8.4 聲明異常 174
8.5 拋出異常 175
8.6 自定義異常 176
8.7 大神解惑 177
8.8 跟我學上機 178
第9章 與外界的交流——Java中的
輸入和輸出類型 179
9.1 I/O簡介 180
9.1.1 I/O分類 180
9.1.2 預定義流 180
9.2 文件處理 181
9.2.1 File類 181
9.2.2 文件操作 182
9.2.3 目錄操作 183
9.3 字節流 184
9.4 字符流 185
9.5 節點流 186
9.5.1 FileInputStream流 187
9.5.2 FileOutputStream流 188
9.5.3 FileReader流 190
9.5.4 FileWriter流 191
9.6 處理流 192
9.6.1 緩沖流 192
9.6.2 數據流 198
9.6.3 轉換流 200
9.6.4 Print流 202
9.6.5 Object流 205
9.7 大神解惑 208
9.8 跟我學上機 208
第10章 任務同時進行——Java中的
線程和并發 209
10.1 線程簡介 210
10.1.1 進程 210
10.1.2 線程 210
10.1.3 線程與進程的區別 210
10.2 創建與啟動線程 211
10.2.1 Thread類創建線程 211
10.2.2 Runnable接口創建線程 211
10.2.3 啟動線程 212
10.3 線程的狀態與轉換 213
10.3.1 線程狀態 213
10.3.2 線程狀態轉換 214
10.4 線程的同步 217
10.4.1 線程安全問題 217
10.4.2 synchronized關鍵字 218
10.4.3 死鎖問題 219
10.5 線程交互 223
10.5.1 wait()方法和notify()方法 223
10.5.2 生產者—消費者問題 223
10.6 線程的調度 226
10.6.1 線程調度原理 226
10.6.2 線程的優先級 226
10.7 大神解惑 227
10.8 跟我學上機 228
第11章 編譯時再審查——Java中的
泛型 229
11.1 Java與C 中的泛型 230
11.2 簡單泛型 230
11.3 類型推導與泛型類和接口 231
11.3.1 類型推導 231
11.3.2 泛型類 232
11.3.3 泛型接口 233
11.4 類型推導與泛型方法 234
11.5 類型通配符 235
11.6 Java 8泛型新特性 237
11.6.1 方法與構造方法引用 237
11.6.2 Lambda作用域 238
11.7 大神解惑 240
11.8 跟我學上機 240
第12章 自檢更靈活——Java中的
反射 241
12.1 反射概述 242
12.2 Java反射API 242
12.3 Class類 242
12.3.1 獲取Class對象 243
12.3.2 Class類常用方法 243
12.4 生成對象 246
12.4.1 無參數構造方法 246
12.4.2 帶參數構造方法 246
12.5 Method類 247
12.6 Field類 249
12.7 數組 251
12.8 獲取泛型信息 252
12.9 大神解惑 253
12.10 跟我學上機 254
第13章 簡化程序的配置——Java中的
注解 255
13.1 注解概述 256
13.2 JDK內置注解 256
13.2.1 @Override 256
13.2.2 @Deprecated 257
13.2.3 @SuppressWarnings 258
13.3 自定義注解 258
13.3.1 自定義注解 258
13.3.2 注解元素的默認值 259
13.4 元注解 260
13.4.1 @Target 260
13.4.2 @Retention 261
13.4.3 @Documented 262
13.4.4 @Inherited 262
13.5 使用反射處理注解 263
13.6 JDK1.8新特性 265
13.6.1 多重注解 265
13.6.2 ElementType枚舉類 265
13.6.3 函數式接口 266
13.7 大神解惑 267
13.8 跟我學上機 268
第14章 特殊的數據集合——枚舉
類型 269
14.1 枚舉聲明 270
14.2 枚舉的使用 270
14.2.1 枚舉類常用方法 270
14.2.2 添加屬性和方法 271
14.2.3 枚舉在switch中的使用 273
14.3 EnumSet和EnumMap 274
14.4 大神解惑 276
14.5 跟我學上機 276
第III篇 高級 應 用
第15章 Java的數據庫編程——JDBC
編程 279
15.1 JDBC概述 280
15.1.1 JDBC原理 280
15.1.2 JDBC驅動 281
15.2 連接數據庫 281
15.2.1 引入jar包 282
15.2.2 連接數據庫步驟 284
15.2.3 JDBC入門實例 284
15.3 驅動管理器類 285
15.3.1 加載JDBC驅動 285
15.3.2 DriverManager類 286
15.4 數據庫連接接口 287
15.4.1 常用方法 287
15.4.2 處理元數據 287
15.5 執行SQL語句的接口 289
15.5.1 Statement接口 289
15.5.2 PreparedStatement接口 292
15.5.3 CallableStatement接口 293
15.6 結果集接口 295
15.7 實戰——學生信息管理 297
15.7.1 創建表student 297
15.7.2 連接數據庫 298
15.7.3 插入數據 298
15.7.4 刪除數據 299
15.7.5 修改數據 301
15.7.6 查詢數據 302
15.8 大神解惑 303
15.9 跟我學上機 304
第16章 設計圖形界面設計——Swing
技術 305
16.1 Swing基礎 306
16.2 Swing容器 306
16.2.1 JFrame窗體 306
16.2.2 JPanel面板 309
16.3 Swing的組件 310
16.3.1 按鈕JButton 310
16.3.2 標簽JLabel 312
16.3.3 復選框JCheckBox 313
16.3.4 單選按鈕JRadioButton 315
16.3.5 單行文本框JTextField 316
16.3.6 密碼文本框JPasswordField 318
16.3.7 多行文本框JTextArea 319
16.3.8 下拉列表JComboBox 321
16.3.9 列表框JList 322
16.3.10 菜單 323
16.4 布局管理 325
16.4.1 流式布局管理器 326
16.4.2 邊框布局管理器 327
16.4.3 網格布局管理器 328
16.4.4 網格組布局管理器 329
16.4.5 卡片布局管理器 331
16.5 Swing事件模型 333
16.5.1 事件處理模型 333
16.5.2 事件類 334
16.5.3 事件監聽器 335
16.5.4 事件適配器 339
16.6 Swing高級組件 340
16.6.1 Swing的表格組件 340
16.6.2 Swing的樹組件 343
16.7 大神解惑 346
16.8 跟我學上機 346
第17章 多媒體開發技術——AWT繪圖
與音頻 347
17.1 Java繪圖 348
17.1.1 繪圖方法 348
17.1.2 Graphics類 348
17.1.3 Graphics2D類 350
17.1.4 設置繪圖顏色 351
17.1.5 設置筆畫屬性 353
17.2 繪文本 356
17.2.1 設置字體 356
17.2.2 繪制文本 356
17.3 繪制圖片 358
17.4 圖像處理 359
17.4.1 圖像放大或縮小 359
17.4.2 圖像傾斜 359
17.4.3 圖像旋轉 361
17.4.4 圖像翻轉 363
17.5 播放音頻 365
17.6 大神解惑 368
17.7 跟我學上機 368
第18章 融入互聯網時代——Java的
網絡編程 369
18.1 網絡編程基礎 370
18.1.1 網絡編程基礎概念 370
18.1.2 網絡協議 371
18.2 TCP網絡編程 372
18.2.1 InetAdress類 372
18.2.2 Socket類 373
18.2.3 ServerSocket類 374
18.2.4 TCP網絡程序 375
18.2.5 小型聊天室 376
18.3 UDP網絡編程 382
18.3.1 DatagramSocket類 382
18.3.2 DatagramPacket類 383
18.3.3 UDP網絡程序 384
18.3.4 數據廣播 386
18.4 大神解惑 390
18.5 跟我學上機 390
第19章 常用工具類——API編程
技術 391
19.1 Runtime類 392
19.1.1 Runtime類方法 392
19.1.2 內存管理 393
19.1.3 ecec()方法 394
19.2 包裝類 394
19.2.1 基本數據類型的包裝類 395
19.2.2 Boolean類 395
19.2.3 Character類 397
19.2.4 整型包裝類 398
19.2.5 Double和Float類 400
19.3 日期操作類 403
19.3.1 Date類 403
19.3.2 Calendar類 404
19.3.3 DateFormat類 406
19.3.4 SimpleDateFormat類 408
19.4 數學類 410
19.5 高手甜點 412
19.6 跟我學上機 412
第20章 工程師的秘密——UML與設計
模式 413
20.1 UML類圖 414
20.1.1 類圖和類之間關系 414
20.1.2 泛化關系 415
20.1.3 實現關系 416
20.1.4 依賴關系 417
20.1.5 關聯關系 418
20.2 設計模式 421
20.2.1 設計模式分類 421
20.2.2 單例模式 422
20.2.3 工廠模式 422
20.2.4 代理模式 424
20.2.5 觀察者模式 425
20.2.6 適配器模式 427
20.3 大神解惑 430
20.4 跟我學上機 430
第21章 連接打印機——Java的打印
技術 431
21.1 打印控制類 432
21.1.1 PrinterJob類的方法 432
21.1.2 【打印】對話框 433
21.2 打印頁面 435
21.3 多頁打印 437
21.4 打印預覽 439
21.5 大神解惑 442
21.6 跟我學上機 442
第IV篇 項目開發實戰
第22章 管理開發項目——ANT工具的
使用 445
22.1 ANT簡介 446
22.1.1 ANT任務類型 446
22.1.2 項目層次結構 446
22.1.3 ANT構建文件 446
22.2 為什么要使用ANT 447
22.3 下載安裝ANT 448
22.3.1 下載ANT 448
22.3.2 安裝ANT 448
22.4 ANT關鍵元素 449
22.5 ANT常用任務 454
22.6 使用ANT構建項目 458
22.7 大神解惑 460
22.8 跟我學上機 460
第23章 人工智能應用——開發購物
推薦系統 461
23.1 開發背景 462
23.2 需求及功能分析 463
23.2.1 需求分析 463
23.2.2 功能分析 463
23.3 系統代碼編寫 465
23.3.1 推薦系統主程序 465
23.3.2 讀取機器學習數據 471
23.3.3 計算行之間相似性 473
23.3.4 計算數組相似性 474
23.3.5 讀取測試數據 476
23.4 系統運行 477
第24章 游戲休閑應用——開發氣球射擊
游戲 479
24.1 游戲簡介 480
24.2 需求及功能分析 480
24.2.1 需求分析 480
24.2.2 功能分析 481
24.3 數據庫設計 482
24.4 系統代碼編寫 482
24.4.1 主程序模塊 483
24.4.2 移動對象的抽象類 487
24.4.3 槍 488
24.4.4 子彈 490
24.4.5 氣球 491
24.4.6 對象的畫圖 492
24.4.7 對象的移動 494
24.4.8 氣球的變化 495
24.4.9 檢查游戲狀況 496
24.4.10 參數接口 498
24.4.11 數據庫類 499
24.5 系統運行 501
第25章 娛樂影視應用——開發電影訂票
系統 503
25.1 需求分析 504
25.2 功能分析 504
25.3 數據庫設計 505
25.3.1 電影信息 506
25.3.2 放映信息 506
25.3.3 用戶訂單信息 506
25.3.4 管理員賬號 507
25.4 系統代碼編寫 507
25.4.1 系統對象模塊 507
25.4.2 歡迎界面模塊 513
25.4.3 前臺訂票模塊 516
25.4.4 后臺管理模塊 525
25.4.5 數據庫模塊 564
25.4.6 輔助處理模塊 578
25.5 系統運行 583
25.5.1 歡迎界面 583
25.5.2 后臺管理界面 583
25.5.3 前臺訂票界面 585