Java 從入門到精通, 4/e
寧躍飛 史衛亞 張洪超
買這商品的人也買了...
相關主題
商品描述
本書以零基礎講解為宗旨,用實例引導讀者學習,深入淺出地介紹了Java的相關知識和實戰技巧。
本書“第Ⅰ篇 基礎知識”主要介紹Java開發環境搭建、Java程序要素、常量、變量、數據類型、運算符、表達式、語句、流程控制、數組、枚舉、類、對象以及方法等,“第Ⅱ篇 核心技術”主要介紹類的封裝、繼承、多態、抽象類、接口、Java常用類庫以及異常的捕獲與處理等,“第Ⅲ篇 高級應用”主要介紹多線程、文件I/O操作、GUI編程、數據庫編程、Java Web以及常用設計框架等,“第Ⅳ篇 項目實戰”主要介紹中國象棋和我的飯票網等項目。此外,附贈的電子書中還介紹了Android編輯基礎、Hadoop下的數據處理、全分佈式Hadoop集群的構建等內容。
本書提供了與圖書內容全程同步的視頻教程,還贈送了大量相關學習資料,以便讀者配合學習。
本書適合任何想學習Java的讀者,無論你是否從事電腦相關行業,是否接觸過Java,均可通過學習本書快速地掌握Java的開發方法和技巧。
作者簡介
宁跃飞
工程硕士,副教授,现执教于郑州升达经贸管理学院信息工程学院。主要研究方向为计算机网络、物联网技术应用等。主持和参与科研(教研)项目9项,参与编写教材(专著)6部,发表相关科研(教研)论文10余篇。
史卫亚
博士,副教授,现执教于河南工业大学信息科学与工程学院。主要研究方向为机器学习、大数据检索、数据库、图像和视频处理、人工智能和模式识别等。先后在国内外核心期刊及会议上发表30多篇论文,参加多项国家自然科学基金、河南省科技攻关项目。
张洪超
电力工程师 ,河南工业大学计算机硕士。主要研究方向为图像和视频处理、基于人工智能的网络安全等。
目錄大綱
第 0 章 Java學習指南
0.1 Java為什麽重要 002
0.2 Java簡史——帶給我們的一點思考 003
0.3 Java應用領域和前景 008
0.4 Java學習路線圖 010
第 Ⅰ 篇基礎知識
第 1 章 Java開發環境搭建
1.1 Java開發環境 013
1.2 下載與安裝JDK 013
1.2.1 下載JDK 013
1.2.2 安裝JDK 015
1.3 Java環境變量的配置 017
1.3.1 理解環境變量 017
1.3.2 JDK中的3個環境變量 018
1.4 享受安裝成果—開發第 一個Java程序 023
1.5 Eclipse的使用 025
1.5.1 Eclipse概述 025
1.5.2 創建Java項目 026
1.5.3 創建Java類文件 027
1.5.4 運行Java程序 029
1.6 在AndroidStudio中運行Java程序 030
1.7 高手點撥 031
1.8 實戰練習 032
第 2 章 Java程序要素概覽
2.1 一個簡單的例子 034
2.2 認識Java程序 035
2.2.1 Java程序的框架 035
2.2.2 標識符 036
2.2.3 關鍵字 037
2.2.4 註釋 037
2.2.5 變量 038
2.2.6 數據類型 039
2.2.7 運算符和表達式 040
2.2.8 類 040
2.3 程序的檢測 041
2.3.1 語法錯誤 041
2.3.2 語義錯誤 042
2.4 提高程序的可讀性 042
2.5 綜合實例——計算兩數之和 043
2.6 高手點撥 044
2.7 實戰練習 044
第 3 章 Java編程基礎—常量、變量與數據類型
3.1 常量與變量 046
3.1.1 常量的聲明與使用 046
3.1.2 變量的聲明與使用 047
3.2 基本數據類型 051
3.2.1 數據類型的意義 051
3.2.2 整數類型 052
3.2.3 浮點數類型 055
3.2.4 字符類型 056
3.2.5 布爾類型 057
3.2.6 var類型 058
3.3 綜合實例——var 類型和基本類型的比較 059
3.4 高手點撥 060
3.5 實戰練習 060
第 4 章 編程元素詳解——運算符、表達式、語句與流程控制
4.1 運算符 062
4.1.1 賦值運算符 062
4.1.2 一元運算符 062
4.1.3 算術運算符 064
4.1.4 邏輯運算符 065
4.1.5 位運算符 067
4.1.6 三元運算符 069
4.1.7 if 語句與關系運算符 070
4.1.8 遞增與遞減運算符 070
4.2 表達式 071
4.2.1 算術表達式與關系表達式 072
4.2.2 邏輯表達式與賦值表達式 073
4.2.3 表達式的類型轉換 074
4.3 語句 075
4.3.1 語句中的空格 075
4.3.2 空語句 076
4.3.3 聲明語句與賦值語句 077
4.4 程序的控制邏輯 077
4.4.1 順序結構 077
4.4.2 選擇結構 078
4.4.3 循環結構 078
4.5 選擇結構 078
4.5.1 if 語句 079
4.5.2 if...else 語句 081
4.5.3 if...else if...else 語句 083
4.5.4 多重選擇 switch 語句 084
4.6 循環結構 086
4.6.1 while 循環 086
4.6.2 do...while 循環 088
4.6.3 for 循環 089
4.7 循環的跳轉 091
4.7.1 break 語句 091
4.7.2 continue 語句 093
4.7.3 return 語句 095
4.8 綜合實例——模擬拋硬幣一億次 096
4.9 高手點撥 097
4.10 實戰練習 098
第 5 章 數組與枚舉
5.1 理解數組 100
5.2 一維數組 102
5.2.1 一維數組的聲明與內存的分配 102
5.2.2 數組中元素的表示方法 103
5.2.3 數組元素的使用 104
5.3 二維數組 107
5.3.1 二維數組的聲明與賦值 107
5.3.2 二維數組元素的引用及訪問 108
5.4 枚舉簡介 109
5.5 Java 中的枚舉 110
5.5.1 常見的枚舉定義方法 110
5.5.2 在程序中使用枚舉 110
5.5.3 在 switch 語句中使用枚舉 111
5.6 綜合實例——查找二維數組中的最大值 112
5.7 高手點撥 113
5.8 實戰練習 113
第 6 章 類和對象
6.1 理解面向對象程序設計 116
6.1.1 面向對象程序設計簡介 116
6.1.2 面向對象程序設計的基本特徵 116
6.2 面向對象的基本概念 117
6.2.1 類 117
6.2.2 對象 117
6.2.3 類和對象的關系 117
6.3 類的聲明與定義 118
6.3.1 類的聲明 118
6.3.2 類的定義 119
6.4 類的屬性 121
6.4.1 屬性的定義 121
6.4.2 屬性的使用 121
6.5 對象的聲明與使用 124
6.5.1 對象的聲明 124
6.5.2 對象的使用 125
6.5.3 匿名對象 127
6.6 綜合實例——創建一個手機對象 128
6.7 高手點撥 129
6.8 實戰練習 129
第 7 章 重復調用的代碼塊—方法
7.1 方法的基本定義 132
7.2 方法的使用 133
7.3 方法中的形參與實參 135
7.4 方法的重載 135
7.5 構造方法 139
7.5.1 構造方法的概念 139
7.5.2 構造方法的重載 141
7.5.3 構造方法的私有化 144
7.6 在方法內部調用方法 147
7.7 static方法 149
7.7.1 自定義static方法 149
7.7.2 static主方法 150
7.8 綜合實例——求解一元二次方程 152
7.9 高手點撥 153
7.10 實戰練習 153
第 Ⅱ 篇核心技術
第 8 章 類的封裝、繼承與多態
8.1 封裝 157
8.1.1 Java訪問權限修飾符 157
8.1.2 封裝問題引例 157
8.1.3 類的封裝實例 158
8.2 繼承 164
8.2.1 Java中的繼承 164
8.2.2 繼承問題的引入 165
8.2.3 繼承實現代碼復用 166
8.2.4 繼承的限制 167
8.3 覆寫 170
8.3.1 屬性的覆蓋 170
8.3.2 方法的覆寫 171
8.4 多態 174
8.4.1 多態的基本概念 174
8.4.2 方法的多態性 176
8.4.3 對象的多態性 177
8.5 綜合實例—創建Person類和它的子類 178
8.6 高手點撥 180
8.7 實戰練習 180
第 9 章 抽象類與接口
9.1 抽象類 182
9.1.1 抽象類的定義 182
9.1.2 抽象類的使用 182
9.2 接口 185
9.2.1 接口的基本概念 185
9.2.2 使用接口的原則 186
9.3 Lambda表達式 194
9.4 綜合實例——實現USB接口 196
9.5 高手點撥 197
9.6 實戰練習 197
第 10章 Java常用類庫
10.1 類庫的概念 200
10.2 基本數據類型的包裝類 200
10.2.1 裝箱與拆箱 201
10.2.2 基本數據類型與字符串的轉換 202
10.3 String類 204
10.3.1 String類的聲明 205
10.3.2 String類中常用的方法 206
10.4 Math與Random類 209
10.4.1 Math類的使用 209
10.4.2 Random類的使用 211
10.5 綜合實例——驗證身份證號碼是否合法 212
10.6 高手點撥 214
10.7 實戰練習 214
第 11章 異常的捕獲與處理
11.1 異常的基本概念 216
11.1.1 簡單的異常範例 216
11.1.2 異常的處理 217
11.2 異常類的處理流程 223
11.3 throws 關鍵字 224
11.4 throw 關鍵字 225
11.5 異常處理的標準格式 226
11.6 綜合實例——數組的創建與查找 227
11.7 高手點撥 228
11.8 實戰練習 228
第 Ⅲ 篇高級應用
第 12章 多線程
12.1 感知多線程 231
12.2 體驗多線程 231
12.2.1 通過繼承 Thread 類實現多線程 232
12.2.2 通過實現 Runnable 接口實現多線程 234
12.2.3 兩種多線程實現機制的比較 236
12.2.4 Java 8 中運行線程的新方法 239
12.3 線程的狀態 240
12.4 線程操作的一些方法 242
12.4.1 取得和設置線程的名稱 242
12.4.2 判斷線程是否啟動 245
12.4.3 守護線程與 setDaemon() 方法 246
12.4.4 線程的聯合 247
12.5 綜合實例——龜兔賽跑 248
12.6 高手點撥 249
12.7 實戰練習 250
第 13章 文件 I/O 操作
13.1 輸入 / 輸出的重要性 252
13.2 讀寫文本文件 252
13.2.1 File 文件類 252
13.2.2 文本文件的操作 254
13.2.3 字符編碼問題 257
13.3 文本的I/O 260
13.3.1 讀入文本單詞 260
13.3.2 讀入單個字符 261
13.3.3 判斷字符分類的方法 261
13.3.4 讀入一行文本 261
13.3.5 將字符轉換為數字 262
13.4 使用 try-with-resources 自動關閉資源 263
13.5 命令行參數的使用 265
13.5.1 System 類對 I/O 的支持 265
13.5.2 Java 命令行參數解析 266
13.6 綜合實例——文本替換程序 268
13.7 高手點撥 269
13.8 實戰練習 270
第 14章 GUI 編程
14.1 GUI 概述 272
14.2 JavaFX 與 Swing 以及 AWT 的比較 272
14.2.1 JavaFX 程序的基本結構 272
14.2.2 GUI 與AWT 276
14.2.3 Swing 和 AWT 的區別與聯系 276
14.3 AWT 容器 277
14.3.1 Frame 窗口 277
14.3.2 Panel 面板 280
14.3.3 佈局管理器 281
14.4 AWT 常用組件 286
14.4.1 按鈕與標簽組件 287
14.4.2 文本域 289
14.4.3 圖形控件 290
14.5 事件處理 291
14.5.1 事件處理的流程 292
14.5.2 常用的事件 293
14.5.3 事件處理小實例——會動的小烏龜 297
14.6 Swing概述 299
14.7 Swing的基本組件 300
14.7.1 JTable表格 301
14.7.2 JComboBox下拉列表框 302
14.7.3 組件的常用方法 303
14.8 綜合實例——簡易學生管理系統 304
14.9 高手點撥 306
14.10 實戰練習 306
第 15章 數據庫編程
15.1 數據庫概述 308
15.2 Java數據庫連接利器——JDBC 308
15.3 輕量級數據庫——SQLite 308
15.3.1 SQLite的準備工作 308
15.3.2 用Java連接SQLite 310
15.3.3 創建數據表 312
15.3.4 更新數據表 313
15.3.5 查詢數據表 318
15.4 MySQL數據庫 319
15.4.1 MySQL數據庫的基本命令 320
15.4.2 在Java中使用MySQL數據庫 322
15.5 綜合實例—簡易學生信息管理系統 324
15.5.1 基本數據結構 324
15.5.2 數據庫操作有關工具類 325
15.5.3 主界面的構造 328
15.5.4 用於輸入新數據的對話框實現 331
15.6 高手點撥 333
15.7 實戰練習 334
第 16章 Java Web初步
16.1 JSP概述 336
16.2 JSP的運行環境 336
16.2.1 安裝Tomcat 336
16.2.2 配置虛擬目錄 338
16.2.3 編寫第 一個JSP程序 340
16.2.4 Tomcat執行流程 341
16.3 基礎語法 341
16.3.1 顯式註釋與隱式註釋 341
16.3.2 代碼段 342
16.3.3 page指令 344
16.3.4 包含指令 346
16.3.5 跳轉指令 349
16.4 內置對象 350
16.4.1 request對象 351
16.4.2 response對象 354
16.5 Servlet 359
16.5.1 Servlet簡介 359
16.5.2 第 一個Servlet程序 360
16.6 綜合實例—簡易通信地址管理系統 363
16.6.1 基本數據結構 363
16.6.2 連接數據庫的工具類 365
16.6.3 構造Servlet類 366
16.6.4 構造JSP 367
16.7 高手點撥 370
16.8 實戰練習 370
第 17章 常用設計框架
17.1 框架的內涵 372
17.2 Struts 開發基礎 372
17.2.1 Struts簡介 372
17.2.2 MVC的基本概念 373
17.2.3 下載Struts 2 類庫 373
17.2.4 從Struts 2的角度理解MVC 374
17.2.5 第 一個Struts 2 實例 374
17.2.6 運行測試strutsLoginDemo工程 384
17.2.7 小結 384
17.3 Spring快速上手 385
17.3.1 Spring基本知識 385
17.3.2 Spring開發準備 385
17.3.3 Spring框架配置 386
17.3.4 Spring開發實例 388
17.4 Hibernate 入門 393
17.4.1 Hibernate 開發基礎 393
17.4.2 Hibernate 開發準備 393
17.4.3 Hibernate 開發實例 395
17.5 綜合實例——基於 SSH 的訂單系統 404
17.5.1 項目初始化 404
17.5.2 預模型層的開發 405
17.5.3 持久層的配置 406
17.5.4 業務層的開發和配置 407
17.5.5 DAO 接口的定義和實現 408
17.5.6 業務層的配置 409
17.5.7 UI 層的實現 409
17.6 高手點撥 412
17.7 實戰練習 412
第 Ⅳ 篇項目實戰
第 18章 Java 項目實戰——中國象棋
18.1 項目概述 415
18.1.1 功能描述 415
18.1.2 中國象棋簡介 415
18.1.3 中國象棋棋盤 415
18.1.4 中國象棋棋子 415
18.2 總體設計 416
18.3 代碼實現 416
18.3.1 引用類包及類的定義 416
18.3.2 圖形用戶界面模塊 417
18.3.3 按鈕的操作模塊 417
18.3.4 棋子的操作模塊 417
18.3.5 棋子的移動規則類模塊 418
18.3.6 運行程序 418
第 19章 Java Web 項目實戰——我的飯票網
19.1 系統分析 420
19.2 系統設計 420
19.3 數據庫設計 420
19.3.1 功能分析 420
19.3.2 基本表設計 421
19.4 用戶註冊模塊設計 424
19.4.1 用戶註冊模塊概述 425
19.4.2 與用戶註冊有關的數據庫連接及操作類 425
19.4.3 用戶註冊界面設計 428
19.4.4 用戶註冊事件處理頁面 429
19.5 用戶登錄模塊設計 430
19.5.1 用戶登錄模塊概述 430
19.5.2 與用戶登錄有關的數據庫連接及操作類 430
19.5.3 用戶登錄界面設計 431
19.5.4 用戶登錄驗證處理頁面 432
19.6 用戶主頁面模塊設計 433
19.6.1 用戶主頁面模塊概述 433
19.6.2 與用戶主頁面有關的數據庫連接及操作類 433
19.6.3 用戶主頁面界面設計 435
19.7 高手點撥 436
19.8 實戰練習 436
(以下內容為電子書)
第 20章 Android 編程基礎
20.1 Android 簡介 438
20.1.1 Android 系統架構 438
20.1.2 Android 應用開發特色 438
20.2 搭建開發環境 438
20.2.1 準備所需要的軟件 439
20.2.2 搭建開發環境 439
20.3 創建第 一個 Android 項目 442
20.3.1 創建 HelloWorld 項目 442
20.3.2 運行 HelloWorld 項目 443
20.3.3 解析第 一個 Android 程序 445
20.4 詳解基本佈局 447
20.4.1 線性佈局 447
20.4.2 相對佈局 451
20.4.3 幀佈局 454
20.5 常見控件的使用方法 455
20.5.1 TextView 455
20.5.2 EditText 457
20.5.3 Button 458
20.5.4 ImageView 461
20.6 Activity詳細介紹 462
20.6.1 Activity的生命周期 462
20.6.2 Activity的狀態 462
20.6.3 Activity的啟動模式 462
20.7 綜合實例——編寫聊天界面 463
20.7.1 製作Nine-Patch圖片 464
20.7.2 編寫聊天界面 465
20.8 高手點撥 470
20.9 實戰練習 470
第 21章 大數據項目實戰——Hadoop下的數據處理
21.1 認識Hadoop 472
21.2 理解MapReduce編程範式 473
21.3 第 一個Hadoop實例——WordCount代碼詳解 473
21.3.1 WordCount基本流程 474
21.3.2 WordCount代碼詳解 475
21.3.3 運行WordCount程序 478
21.4 面向K-Means聚類算法的Hadoop實踐 482
21.4.1 K-Means聚類算法簡介 482
21.4.2 基於MapReduce的K-Means算法實現 484
21.4.3 編寫K-Means算法代碼 484
21.4.4 在Hadoop集群運行KMeans項目 506
21.5 高手點撥 510
21.6 實戰練習 510
附錄 全分佈式Hadoop集群的構建
安裝CentOS 7 511
安裝Java並配置環境變量 512
安裝Hadoop 514
下載Hadoop包 514
安裝Hadoop的方法 514
Hadoop的運行模式 514
本地模式(Local Model) 514
偽分佈模式(Pseudo-Distributed Model) 515
全分佈模式(Fully Distributed Model) 515
Hadoop集群構建 515
設置靜態IP地址 515
修改hosts文件 517
安裝和配置SSH服務 517
安裝SSH 518
SSH免密碼登錄 518
虛擬機的配置文件同步 520
全分佈模式下配置Hadoop 520
配置Hadoop環境變量 520
配置hadoop-env.sh文件 521
配置HDFS的主節點(core-site.xml文件) 522
配置slaves文件 523
配置yarn-site.xml文件 524
配置mapred-site.xml文件 525
驗證全分佈模式 526
默認配置文件所在位置 527
關閉Hadoop 528