Java 從入門到精通, 4/e

寧躍飛 史衛亞 張洪超

  • Java 從入門到精通, 4/e-preview-1
  • Java 從入門到精通, 4/e-preview-2
Java 從入門到精通, 4/e-preview-1

買這商品的人也買了...

商品描述

本書以零基礎講解為宗旨,用實例引導讀者學習,深入淺出地介紹了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