Java語言程序設計(第4版·面向對象編程·項目案例·題庫·微課視頻版)
沈澤剛
相關主題
商品描述
目錄大綱
目錄
第1章Java起步入門
1.1Java的起源與演進
1.1.1Java的發展歷程
1.1.2Java語言的優點
1.2Java平臺與運行機制
1.2.1Java平臺與應用領域
1.2.2JVM、JRE和JDK
1.2.3Java字節碼與平臺
獨立
1.3建立開發環境
1.3.1JDK的下載與安裝
1.3.2關於環境變量
1.3.3Java API文檔
1.4第一個Java程序
1.4.1Java程序開發步驟
1.4.2第一個程序分析
1.5集成開發環境
1.5.1使用Eclipse開發Java
程序
1.5.2使用IntelliJ IDEA開發
Java程序
1.6JShell交互式編程環境
1.7小結
編程練習
第2章數據類型與運算符
2.1Java數據類型
2.1.1基本數據類型
2.1.2引用數據類型
2.2標識符與語句
2.2.1Java標識符
2.2.2Java關鍵字
2.2.3變量與賦值
2.2.4語句
2.3基本數據類型及字面值
2.3.1整數類型
2.3.2浮點類型
2.3.3字符類型
2.3.4布爾類型
2.4字符串類型
2.5軟件開發過程
2.6數據類型轉換
2.6.1自動類型轉換
2.6.2強制類型轉換
2.6.3表達式類型自動提升
2.7運算符
2.7.1算術運算符
2.7.2關系運算符
2.7.3邏輯運算符
2.7.4賦值運算符
2.7.5位運算符
2.7.6運算符的優先級和
結合性
2.8程序文檔風格和註釋
2.8.1一致的縮進和空白
2.8.2塊的風格
2.8.3程序註釋
2.9案例學習——求解線性
方程組
2.10案例學習——計算並顯示當前
時間
2.11小結
編程練習
第3章結構化編程
3.1選擇結構
3.1.1單分支if語句
3.1.2雙分支if…else語句
3.1.3條件運算符
3.1.4嵌套的if語句和多分支的
if…else語句
3.2switch語句與switch表
達式
3.2.1switch語句
3.2.2switch表達式
3.3案例學習——兩位數加減
運算
3.4循環結構
3.4.1while循環
3.4.2do…while循環
3.4.3for循環
3.4.4循環的嵌套
3.4.5break語句和continue
語句
3.5案例學習——求最大公
約數
3.6案例學習——打印輸出若乾
素數
3.7小結
編程練習
第4章類、對象和方法
4.1面向對象概述
4.1.1OOP的產生
4.1.2基本概念
4.1.3OOP的優勢
4.2定義類與創建對象
4.2.1類的定義
4.2.2創建和使用對象
4.2.3用UML圖表示類
4.2.4理解棧與堆
4.3構造方法
4.3.1無參數構造方法
4.3.2帶參數構造方法
4.3.3構造方法的重載
4.3.4this關鍵字
4.4案例學習——使用自定義Date
日期類
4.5方法設計
4.5.1如何設計方法
4.5.2調用方法
4.5.3方法重載
4.5.4方法參數的傳遞
4.6案例學習——分數類Fraction
的設計
4.7靜態變量和靜態方法
4.7.1靜態變量
4.7.2靜態方法
4.7.3靜態工廠方法
4.7.4單例模式
4.7.5方法遞歸
4.8案例學習——打印斐波那契
數列
4.9對象初始化
4.9.1實例變量的初始化
4.9.2靜態變量的初始化
4.10變量的作用域
4.11局部變量類型推斷
4.12垃圾回收
4.13小結
編程練習
第5章數組
5.1創建和使用數組
5.1.1聲明和創建數組
5.1.2訪問數組元素
5.1.3數組初始化器
5.1.4增強的for循環
5.2數組的應用
5.2.1數組元素的復制
5.2.2數組參數與返回值
5.2.3可變參數的方法
5.2.4數組的查找
5.3案例學習——數組起泡
排序
5.4java.util.Arrays類
5.4.1數組的復制
5.4.2數組的排序
5.4.3元素的查找
5.4.4數組的比較
5.4.5填充數組元素
5.5案例學習——橋牌隨機
發牌
5.6二維數組
5.6.1二維數組的定義
5.6.2數組元素的使用
5.6.3數組初始化器
5.6.4實例——矩陣乘法
5.6.5不規則二維數組
5.7案例學習——打印輸出魔
方數
5.8小結
編程練習
第6章字符串類
6.1String類及基本操作
6.1.1創建String類對象
6.1.2字符串基本操作
6.1.3String對象的不變性
6.1.4字符串比較
6.1.5字符串的查找和
匹配
6.1.6字符串的拆分與
組合
6.1.7字符串轉換為數組
6.2文本塊
6.3命令行參數
6.4格式化數據
6.5StringBuilder類
6.5.1創建StringBuilder
對象
6.5.2StringBuilder類常用
操作
6.5.3“+”運算符的重載
6.6案例學習——判定回
文串
6.7案例學習——字符串加密、
解密
6.8小結
編程練習
第7章面向對象特徵
7.1面向對象的三大特徵
7.2包、類庫與模塊
7.2.1包與package語句
7.2.2類的導入
7.2.3Java類庫
7.2.4Java模塊系統
7.3封裝性與訪問權限
7.3.1類的訪問權限
7.3.2類成員的訪問權限
7.4類的繼承
7.4.1類繼承的實現
7.4.2方法覆蓋
7.4.3super關鍵字
7.4.4調用父類的構造方法
7.5final關鍵字
7.5.1final修飾類
7.5.2final修飾方法
7.5.3final修飾變量
7.6抽象類
7.7對象轉換與多態性
7.7.1對象轉換
7.7.2instanceof運算符
7.7.3多態與動態綁定
7.8案例學習——自定義類庫的
開發
7.9小結
編程練習
第8章Java核心類庫
8.1java.lang.Object類
8.1.1toString()方法
8.1.2equals()方法
8.1.3hashCode()方法
8.1.4clone()方法
8.2java.lang.Math類
8.3java.lang.System類
8.4基本類型包裝類
8.4.1Character 類
8.4.2Boolean類
8.4.3創建數值類對象
8.4.4數值類的常量
8.4.5自動裝箱與自動拆箱
8.4.6字符串與基本類型
轉換
8.5案例學習——一個整數棧的
實現
8.6BigInteger類和BigDecimal
類
8.7日期和時間API
8.7.1LocalDate本地
日期類
8.7.2LocalTime本地
時間類
8.7.3LocalDateTime本地日期
和時間類
8.7.4Instant類、Duration類
和Period類
8.7.5其他常用類
8.7.6日期和時間API的解析
和格式化
8.8案例學習——打印輸出
年歷
8.9小結
編程練習
第9章接口與內部類
9.1接口
9.1.1接口的定義
9.1.2常量
9.1.3接口的實現
9.1.4接口的繼承
9.1.5接口類型的使用
9.2接口的非抽象方法
9.2.1靜態方法
9.2.2默認方法
9.2.3私有方法
9.2.4解決默認方法沖突
9.3內部類
9.3.1成員內部類
9.3.2靜態內部類
9.3.3匿名內部類
9.3.4局部內部類
9.4接口示例
9.4.1ComparableT
接口
9.4.2ComparatorT
接口
9.5案例學習——比較員工對象
大小
9.6小結
編程練習
第10章異常處理
10.1異常與異常類
10.1.1異常的概念
10.1.2異常類
10.2捕獲異常
10.2.1異常的拋出與
捕獲
10.2.2try…catch…finally
語句
10.3捕獲多個異常
10.4throws短語和throw
語句
10.5try…with…resources
語句
10.6自定義異常類
10.7斷言
10.7.1使用斷言
10.7.2開啟和關閉斷言
10.7.3何時使用斷言
10.8案例學習——數組不匹配
異常
10.9小結
編程練習
第11章記錄、枚舉和註解類型
11.1記錄類型
11.2枚舉類型
11.2.1枚舉類型的定義
11.2.2枚舉類型的方法
11.2.3枚舉在switch語句
中的應用
11.2.4枚舉類型的構造
方法
11.3註解類型
11.3.1註解概述
11.3.2標準註解
11.3.3定義註解類型
11.3.4標準元註解
11.4小結
編程練習
第12章泛型與集合
12.1泛型
12.1.1泛型類
12.1.2泛型接口
12.1.3泛型方法
12.1.4通配符(?)的使用
12.1.5有界類型參數
12.1.6類型擦除
12.2集合框架
12.3List接口及實現類
12.3.1List的操作
12.3.2ArrayList類
12.3.3遍歷集合元素
12.3.4數組轉換為List
對象
12.4Set接口及實現類
12.4.1HashSet類
12.4.2用Set對象實現集合
運算
12.4.3TreeSet類
12.4.4對象順序
12.5Queue接口及實現
類
12.5.1Queue接口和Deque
接口
12.5.2ArrayDeque類和
LinkedList類
12.5.3集合轉換
12.6案例學習——用集合存儲、
遍歷員工記錄
12.7Map接口及實現類
12.7.1Map接口
12.7.2HashMap類
12.7.3TreeMap類
12.7.4在Map鍵和值上
迭代
12.7.5Hashtable類和Enu
meration接口
12.8Collections類
12.9案例學習——用Map統計
單詞數量
12.10小結
編程練習
第13章輸入/輸出
13.1I/O概述
13.1.1File類應用
13.1.2文本I/O與二進制
I/O
13.2二進制I/O流
13.2.1OutputStream類和
InputStream類
13.2.2FileOutputStream類和
FileInputStream類
13.2.3BufferedOutputStream類
和BufferedInputStream
類
13.2.4DataOutputStream類和
DataInputStream類
13.2.5PrintStream類
13.2.6標準輸入/輸出流
13.3案例學習——文件加密、解密
程序
13.4文本I/O流
13.4.1Reader類和Writer類
13.4.2FileWriter類和
FileReader類
13.4.3BufferedReader類和
BufferedWriter類
13.4.4PrintWriter類
13.4.5使用Scanner對象
13.5案例學習——統計文件行數、
單詞數和字符數
13.6對象序列化
13.6.1對象序列化與
對象流
13.6.2向ObjectOutputStream
中寫入對象
13.6.3從ObjectInputStream
中讀取對象
13.6.4序列化數組
13.7Files類操作
13.7.1Path對象
13.7.2創建和刪除目錄及
文件
13.7.3文件屬性操作
13.7.4文件和目錄的復制與
移動
13.7.5獲取目錄的對象
13.7.6小文件的讀寫
13.7.7使用Files類創建流
對象
13.8小結
編程練習
第14章函數式編程
14.1Lambda表達式
14.1.1從匿名類到Lambda
表達式
14.1.2Lambda表達式
語法
14.1.3函數式接口
14.2預定義函數式接口
14.2.1ConsumerT
接口
14.2.2SupplierT
接口
14.2.3PredicateT
接口
14.2.4FunctionT,R
接口
14.3方法引用和構造方法
引用
14.3.1方法引用
14.3.2構造方法引用
14.4Stream API
14.4.1流概述
14.4.2創建與獲得流
14.4.3連接流和限制流
14.4.4過濾流
14.4.5流轉換
14.4.6流歸約
14.4.7收集結果
14.4.8基本類型流
14.4.9並行流
14.5案例學習——用Stream統計
員工的平均年齡
14.6案例學習——用Stream計算
多個數的斐波那契數
14.7小結
編程練習
第15章JavaFX圖形界面
15.1JavaFX概述
15.1.1Java GUI編程
簡史
15.1.2添加JavaFX軟
件包
15.1.3JavaFX的主要
功能
15.2JavaFX程序基本結構
15.2.1舞臺和場景
15.2.2場景圖和節點
15.2.3Application類生命周期
方法
15.2.4JavaFX程序啟動
15.3JavaFX屬性與綁定
15.3.1JavaFX屬性
15.3.2屬性綁定
15.4JavaFX界面佈局
15.4.1JavaFX坐標系
15.4.2Pane面板
15.4.3HBox面板
15.4.4VBox面板
15.4.5BorderPane面板
15.4.6FlowPane面板
15.4.7GridPane面板
15.4.8StackPane面板
15.4.9使用CSS設置控件
樣式
15.5Color類和Font類
15.5.1Color類
15.5.2Font類
15.6JavaFX形狀
15.6.1Line類
15.6.2Rectangle類
15.6.3Circle類
15.6.4Ellipse類
15.6.5Arc類
15.6.6Polygon類
15.6.7Text類
15.7Image類和ImageView
類
15.8特效實現
15.8.1陰影效果
15.8.2模糊效果
15.8.3倒影效果
15.8.4發光效果
15.9案例學習——考試成績
分佈圖
15.10小結
編程練習
第16章事件處理與常用控件
16.1事件處理
16.1.1事件處理模型
16.1.2事件類和事件
類型
16.1.3使用事件處理器
16.1.4動作事件
16.1.5鼠標事件
16.1.6鍵盤事件
16.1.7為屬性添加監
聽器
16.2常用控件
16.2.1Label類
16.2.2Button類
16.2.3TextField類和
PasswordField類
16.2.4TextArea類
16.2.5CheckBox類
16.2.6RadioButton類
16.2.7ComboBox類
16.2.8Slider類
16.2.9菜單設計
16.2.10FileChooser類
16.3案例學習——一個猜數
游戲
16.4音頻和視頻
16.5動畫
16.5.1過渡動畫
16.5.2淡出效果
16.5.3移動效果
16.5.4縮放效果
16.5.5旋轉效果
16.5.6時間軸動畫
16.6案例學習——升國旗
奏國歌
16.7小結
編程練習
第17章JDBC數據庫編程
17.1數據庫簡介
17.1.1關系數據庫簡述
17.1.2數據庫語言SQL
17.2JDBC體系結構
17.2.1JDBC訪問數據庫
17.2.2JDBC API
17.3數據庫訪問步驟
17.3.1加載驅動程序
17.3.2建立連接對象
17.3.3創建語句對象
17.3.4執行語句獲得執行
結果
17.3.5關閉有關對象
17.4使用PreparedStatement
對象
17.4.1創建PreparedStatement
對象
17.4.2帶參數的SQL
語句
17.5創建和訪問 MySQL
數據庫
17.5.1創建數據庫和表
17.5.2訪問MySQL
數據庫
17.6案例學習——使用數據源
連接數據庫
17.7DAO設計模式
17.8可滾動和可更新的
ResultSet
17.8.1可滾動的ResultSet
17.8.2可更新的ResultSet
17.9案例學習——數據庫存取
圖像數據
17.10小結
編程練習
第18章並發編程基礎
18.1Java多線程
18.2創建任務和線程
18.2.1實現Runnable
接口
18.2.2繼承Thread類
18.2.3主線程與守護
線程
18.3線程的狀態與調度
18.3.1線程的狀態
18.3.2線程的優先級和
調度
18.3.3控制線程的結束
18.4線程同步與對象鎖
18.4.1線程沖突與原子
操作
18.4.2方法同步
18.4.3塊同步
18.5線程協調
18.5.1不正確的設計
18.5.2監視器模型
18.6並發工具
18.6.1原子變量
18.6.2Executor和
ExecutorService
18.6.3Callable和
Future
18.6.4使用Lock鎖定
對象
18.7案例學習——百米飛人
大戰
18.8小結
編程練習
第19章Java網絡編程
19.1網絡編程概述
19.1.1網絡分層與協議
19.1.2客戶服務器結構
19.1.3IP地址和域名
19.1.4埠號與套接字
19.2基於TCP的通信
19.2.1基於TCP和UDP通信
的對比
19.2.2ServerSocket類和
Socket類
19.2.3簡單的TCP通信的
例子
19.3基於UDP的通信
19.3.1DatagramSocket類和
DatagramPacket類
19.3.2簡單的UDP通信
例子
19.4基於HTTP的通信
19.4.1理解HTTP
19.4.2URL和URL類
19.4.3URLConnection類
19.5案例學習——訪問Web
應用程序
19.6小結
編程練習
附錄A綜合案例
案例1——英文字母“隨機漫步”
案例2——八皇後問題
案例3——簡單的日歷程序
案例4——簡易計算器
案例5——簡單的五子棋游戲
案例6——簡單的Web服務器
參考文獻