內容簡介
《漫畫Java編程》結合大量典型生動的範例,深入淺出地講解了Java編程的各種基本技術。本書的範例都基於最新的JDK 17版本。本書內容包括:創建和運行Java程式的基本方法、Java語言的基本語法、數據類型和變數、操作符、流程控制、繼承、多態、訪問控制級別、接口、內部類、異常處理、數組、集合、輸入與輸出、多執行緒、反射和註解。
圖書目錄
第1章 初識Java 編程
1.1 編寫Java 源程式
1.1.1 創建一個Java 對象
1.1.2 程式入口main( ) 方法
1.1.3 面向對象的基本思想
1.2 Java 編譯器和Java 虛擬機
1.3 編譯和運行Java 程式
1.3.1 認識一下JDK
1.3.2 本範例的目錄結構
1.3.3 編譯Java 源程式
1.3.4 運行Java 程式
1.3.5 創建用於編譯和運行Java 程式的批處理檔案
1.4 使用Intellij IDEA 軟體開發工具
1.5 編程實戰:創建學生類和學生對象
1.5.1 編程提示:多個字元串用操作符“+”進行拼接
1.5.2 編程拓展:讀取命令行輸入的參數
1.5.3 編程拓展:讀取用戶在控制台輸入的數據
1.6 小結
第2章 基本語法
2.1 Java 源檔案的結構
2.2 關鍵字
2.3 標識符
2.4 包聲明語句
2.4.1 包的命名規範
2.4.2 JDK類庫
2.5 包引入語句
2.6 方法的聲明
2.7 注釋語句
2.8 編程規範
2.9 JavaDoc 文檔
2.10 直接用JDK 來編譯和運行本章範例
2.11 用IDEA 開發本章範例
2.12 編程實戰:建立學生和班主任老師的關聯
2.12.1 編程提示:使用package和import 語句
2.12.2 編程拓展:給Java 程式打包
2.13 小結
第3章 數據類型
3.1 基本類型
3.1.1 boolean類型
3.1.2 byte、short、int和long類型
3.1.3 char類型與字元編碼
3.1.4 float和double類型
3.2 引用類型
3.3 基本類型與引用類型的區別
3.4 數據類型和變數
3.5 直接數
3.5.1 直接數的類型
3.5.2 直接數的賦值
3.6 包裝類
3.7 編程實戰:建立圖書的電子檔案
3.7.1 編程提示:為變數設定合理的數據類型
3.7.2 編程拓展:創建表示日期的Date 對象
3.8 小結
第4章 變數的作用域和類型
4.1 變數的作用域
4.2 對象的默認引用:this
4.3 靜態變數和實例變數
4.4 靜態方法和實例方法
4.4.1 靜態方法
4.4.2 實例方法
4.5 成員變數和局部變數同名
4.6 參數傳遞
4.7 編程實戰:統計員工的信息
4.7.1 編程提示:定義靜態變數
4.7.2 編程拓展:定義靜態方法
4.8 小結
第5章 變數的生命周期
5.1 局部變數和方法參數的生命周期
5.2 類和靜態變數的生命周期
5.3 對象和實例變數的生命周期
5.3.1 用new 關鍵字創建對象
5.3.2 隱含的默認構造方法
5.3.3 對象的垃圾回收
5.4 變數的初始化及默認值
5.4.1 成員變數的默認初始化
5.4.2 靜態變數的顯式初始化
5.4.3 實例變數的顯式初始化
5.4.4 局部變數的初始化
5.5 編程實戰:電飯鍋的記憶體之旅
5.5.1 編程提示:善用各種類型的變數
5.5.2 編程拓展:程式劇本在記憶體舞台上的演繹
5.6 小結
第6章 操作符
6.1 操作符的分類
6.2 算術操作符
6.2.1 一元算術操作符
6.2.2 二元算術操作符
6.2.3 算術運算中的數據類型轉換
6.2.4 複合算術賦值操作符
6.3 比較操作符
6.4 邏輯操作符
6.4.1 與操作符
6.4.2 或操作符
6.4.3 短路操作符和非短路操作符
6.4.4 非操作符
6.5 三元條件操作符“?:”
6.6 賦值操作符
6.7 編程實戰:求隨機數
6.7.1 編程提示:自定義的生成隨機數的算法
6.7.2 編程拓展:Math類的random( ) 方法
6.8 小結
第7章 流程控制
7.1 分支語句
7.1.1 if-else 語句
7.1.2 switch 語句
7.2 循環語句
7.2.1 while 語句
7.2.2 do-while 語句
7.2.3 for 語句
7.2.4 多重循環
7.3 流程跳轉語句
7.4 編程實戰:求一個正整數的階乘
7.4.1 編程提示:使用循環語句
7.4.2 編程拓展:使用遞歸
7.5 小結
第8章 繼承
8.1 繼承的基本語法
8.2 Object 祖先類
8.3 成員方法的重載
8.4 構造方法的重載
8.5 成員方法的覆蓋
8.6 子類訪問父類的同名成員變數和方法
8.7 final 修飾符
8.7.1 final類
8.7.2 final 方法
8.7.3 final 變數
8.8 abstract 修飾符
8.8.1 abstract 修飾符的修飾內容
8.8.2 abstract 修飾符的語法規則
8.9 調用父類的構造方法
8.10 編程實戰:覆蓋和重載Object類的方法
8.10.1 編程提示:覆蓋equals( ) 方法
8.10.2 編程拓展:重載toString( ) 方法
8.11 小結
第9章 多態
9.1 實例方法的動態綁定
9.2 靜態方法和成員變數的靜態綁定
9.3 引用類型操作符
9.4 操作符“==”
9.5 引用變數的賦值和類型轉換
9.6 instanceof 操作符
9.7 編程實戰:飼養員給動物餵食
9.7.1 編程提示:動物的多態
9.7.2 編程拓展:創建食物工廠
9.7.3 編程拓展:運用反射機制創建Food 對象
9.7.4 編程拓展:運用泛型避免ClassCastException
9.8 小結
第10章 訪問控制級別
10.1 封裝類的部分屬性和方法
10.2 封裝的概念與作用
10.3 封裝類的構造方法
10.4 四種訪問控制級別
10.5 編程實戰:模擬電風扇
10.5.1 編程提示:封裝實現細節
10.5.2 編程拓展:運用執行緒模擬扇葉旋轉
10.6 小結
第11章 接口
11.1 接口的定義和基本用法
11.2 接口的成員變數
11.3 接口的方法
11.4 接口的繼承
11.5 一個類實現多個接口
11.6 比較抽象類與接口
11.7 編程實戰:創建適配器
11.7.1 編程提示:通過繼承實現適配器
11.7.2 編程拓展:通過組合實現適配器
11.8 小結
第12章 內部類
12.1 內部類的種類
12.2 成員內部類
12.2.1 實例內部類
12.2.2 靜態內部類
12.3 局部內部類
12.4 匿名類的定義和特點
12.5 匿名類的作用
12.6 用Lambda 表達式代替匿名類
12.7 編程實戰:巧用內部類
12.7.1 編程提示:內部類回調外部類
12.7.2 編程拓展:內部類作為外部類的靜態工廠
12.8 小結
第13章 異常處理
13.1 Java 異常處理機制概述
13.2 Java 異常處理的語法
13.2.1 拋出異常和捕獲異常
13.2.2 finally 語句:任何情況下必須執行的代碼
13.3 Java 異常類
13.3.1 運行時異常
13.3.2 受檢查異常
13.3.3 區分受檢查異常和運行時異常
13.4 自定義異常類
13.5 編程實戰:處理電梯運行中的異常
13.5.1 編程提示:根據實際需求處理異常
13.5.2 編程拓展:異常鏈
13.6 小結
第14章 數組
14.1 數組簡介
14.1.1 數組變數的聲明
14.1.2 創建數組對象
14.1.3 訪問數組的元素和數組的長度
14.1.4 數組的初始化
14.1.5 遍歷數組
14.2 數組排序
14.3 多維數組
14.4 用符號“…”聲明數目可變參數
14.5 編程實戰:創建會自動排序的數據結構
14.5.1 編程提示:創建包裝了數組的Java類
14.5.2 編程拓展:創建容量會自動增長的數據結構
14.6 小結
第15章 集合
15.1 Java 集合的類框架
15.2 集合的基本用法
15.2.1 包裝類的自動裝箱和拆箱
15.2.2 集合的靜態of( ) 方法
15.3 Set
15.3.1 Set 的一般用法
15.3.2 HashSet類
15.3.3 TreeSet類
15.4 List
15.5 Queue
15.6 Map
15.7 用Lambda 表達式指定遍歷集合的具體行為
15.8 編程實戰:報數遊戲
15.8.1 向列表添加和刪除元素
15.8.2 運用遞歸遍歷列表
15.9 小結
第16章 輸入與輸出
16.1 輸入流和輸出流概述
16.2 輸入流InputStream類
16.3 過濾輸入流:FilterInputStream
16.3.1 BufferedInputStream類
16.3.2 DataInputStream類
16.4 輸出流OutputStream類
16.5 過濾輸出流:FilterOutputStream
16.5.1 BufferedOutputStream
16.5.2 PrintStream類
16.6 Reader/Writer 概述
16.7 Reader類
16.7.1 InputStreamReader類
16.7.2 BufferedReader類
16.8 Writer類
16.8.1 OutputStreamWriter類
16.8.2 PrintWriter類
16.9 讀寫文本檔案的範例
16.10 File類
16.11 用java.nio.file 包中的類操縱檔案系統
16.12 編程實戰:遍歷目錄樹
16.12.1 編程提示:使用Files類的walkFileTree( ) 方法
16.12.2 編程拓展:查看ZIP壓縮檔案
16.13 小結
第17章 多執行緒的並發運行
17.1 進程和執行緒的概念
17.2 Java 執行緒的運行機制
17.3 執行緒的創建和啟動
17.3.1 擴展java.lang.Thread類
17.3.2 實現java.lang.Runnable 接口
17.4 執行緒的狀態轉換
17.4.1 新建狀態(New)
17.4.2 就緒狀態(Runnable)
17.4.3 運行狀態(Running)
17.4.4 阻塞狀態(Blocked)
17.4.5 等待狀態(Waiting)
17.4.6 死亡狀態(Terminated)
17.4.7 執行緒狀態轉換舉例
17.5 執行緒調度
17.6 執行緒睡眠
17.7 獲得當前執行緒對象的引用
17.8 後台執行緒
17.9 編程實戰:定時執行任務
17.9.1 編程提示:執行緒並發訪問同一個對象
17.9.2 編程拓展:使用定時器類
17.10 小結
第18章 多執行緒的同步和通信
18.1 執行緒的同步
18.1.1 同步代碼塊的語法
18.1.2 執行緒同步的特徵
18.2 執行緒的通信
18.2.1 執行緒通信的流程
18.2.2 對象的鎖池和等待池
18.3 編程實戰:秒針、分針和時針的通信
18.3.1 編程提示:明確執行緒等待的條件
18.3.2 編程拓展:使用外部鎖
18.4 小結
第19章 反射機制
19.1 Java 反射API 簡介
19.2 動態創建對象
19.3 動態訪問對象的屬性
19.4 動態訪問對象的方法
19.5 動態創建和訪問數組
19.6 編程實戰:複製對象
19.6.1 編程提示:動態調用JavaBean 的get和set 方法
19.6.2 編程拓展:創建動態代理
19.7 小結
第20章 註解
20.1 自定義註解
20.2 對自定義註解的限定
20.3 在類的原始碼中使用註解
20.4 在程式中運用反射機制讀取類的註解
20.5 基本內置註解
20.6 編程實戰:把Java類映射成資料庫表
20.6.1 編程提示:定義和使用@Table等註解
20.6.2 編程拓展:識別和處理@Table等註解
20.7 小結
作者簡介
孫衛琴,知名IT作家和Java開發專家,畢業於上海交通大學,曾創辦程式設計師技術網站JavaThinker.net,已經創作了近二十部軟體開發領域的專著,多部作品曾在同類書籍中位居暢銷排行榜的榜首。代表著作有:《精通Spring:Java Web開發技術詳解》《精通Vue.js:Web前端開發技術詳解》《Java面向對象編程》《Java網路編程核心技術詳解》《精通JPA與Hibernate: Java對象持久化技術詳解》《Tomcat與Java Web開發技術詳解》。目前在Java培訓界的行業巨頭——動力節點就職,擔任Java研究院首席主編。
杜聚賓,15年以上的軟體研發及項目管理經驗,曾先後就職於中訊、甲骨文、百度等國內大型軟體公司,先後擔任過Java高級工程師、CTO等職務,並經常對內部員工進行技術培訓。熱衷於技術分享,因此獨創了PDT4J教學法。製作的Java視頻課程,通俗易懂,由淺入深,深受網友喜歡,在B站上,“Java零基礎視頻”單套視頻的播放量超2000萬次,長期位列榜首。目前在Java培訓界的行業巨頭——動力節點就職,擔任Java教學總監。