本書針對(duì)Java 開發(fā)領(lǐng)域的實(shí)際需求,參照OCA(Oracle Certified Associate)考核知識(shí)點(diǎn)和認(rèn)證體系,詳細(xì)講解了Java 技術(shù)的基礎(chǔ)知識(shí)。內(nèi)容包含Java 語(yǔ)言概述與編程環(huán)境、Java 語(yǔ)言基礎(chǔ)、類與對(duì)象、深入理解Java 語(yǔ)言面向?qū)ο螅ɡ^承、重寫、對(duì)象多態(tài)性、Object 類、抽象類、接口、內(nèi)部類、Lambda 表達(dá)式)、異常處理、常用類與工具類、多線程、輸入輸出流、圖形用戶界面,以及數(shù)據(jù)庫(kù)編程。全書邏輯性強(qiáng),循序漸近且示例豐富,能夠幫助初學(xué)者快速掌握J(rèn)ava 開發(fā)技能。本書的內(nèi)容和組織基于高校教材的要求,既可作為高等院校本科、專科計(jì)算機(jī)相關(guān)專業(yè)的教材,也可作為基礎(chǔ)的培訓(xùn)用書。
陳振興,云南財(cái)經(jīng)大學(xué)教師,副教授,碩士生導(dǎo)師,主要研究方向?yàn)檐浖こ膛c信息系統(tǒng),長(zhǎng)期從事計(jì)算機(jī)教學(xué)和計(jì)算機(jī)軟件開發(fā)工作,主持多項(xiàng)橫向項(xiàng)目的軟件開發(fā)工作,代表軟件為高校教學(xué)管理系統(tǒng)、醫(yī)院信息管理系統(tǒng)和電子病歷系統(tǒng);主要講授課程:Java面向?qū)ο蟪绦蛟O(shè)計(jì),系統(tǒng)分析與設(shè)計(jì),數(shù)據(jù)庫(kù)運(yùn)用等課程。
第1 章 Java 語(yǔ)言概述與編程環(huán)境 ........................................................................................... 1
1.1 Java 語(yǔ)言的發(fā)展歷史 .................................................................................................... 1
1.2 Java 語(yǔ)言的特點(diǎn) ............................................................................................................ 2
1.3 Java 開發(fā)環(huán)境 ................................................................................................................ 3
1.3.1 下載JDK ............................................................................................................. 4
1.3.2 JDK 的安裝與配置 ............................................................................................. 5
1.3.3 IntelliJ IDEA 編譯環(huán)境的搭建 ........................................................................... 7
1.3.4 Eclipse 編譯環(huán)境的搭建 .................................................................................... 8
1.4 一個(gè)簡(jiǎn)單的Java 程序 ................................................................................................... 9
1.5 編譯和執(zhí)行Java 程序 ................................................................................................. 10
1.5.1 控制臺(tái)方式 ....................................................................................................... 10
1.5.2 IDE 方式 ........................................................................................................... 11
1.6 本章小結(jié) ...................................................................................................................... 11
1.7 習(xí)題 .............................................................................................................................. 12
第2 章 Java 語(yǔ)言基礎(chǔ) ............................................................................................................. 13
2.1 Java 的基本語(yǔ)法 .......................................................................................................... 13
2.1.1 Java 的基本語(yǔ)法格式 ....................................................................................... 13
2.1.2 Java 中的注釋 ................................................................................................... 14
2.1.3 關(guān)鍵字 ............................................................................................................... 15
2.1.4 標(biāo)識(shí)符 ............................................................................................................... 16
2.2 變量與常量 .................................................................................................................. 17
2.2.1 變量概述 ........................................................................................................... 17
2.2.2 變量的定義 ....................................................................................................... 17
2.2.3 常量 ................................................................................................................... 17
2.2.4 數(shù)據(jù)類型 ........................................................................................................... 17
2.2.5 變量的作用域 ................................................................................................... 22
2.2.6 變量的初始化 ................................................................................................... 23
2.2.7 基本數(shù)據(jù)類型轉(zhuǎn)換 ........................................................................................... 24
2.3 運(yùn)算符、表達(dá)式與語(yǔ)句 .............................................................................................. 25
2.3.1 算術(shù)運(yùn)算符與算術(shù)表達(dá)式 ............................................................................... 25
2.3.2 關(guān)系運(yùn)算符與關(guān)系表達(dá)式 ............................................................................... 26
2.3.3 邏輯運(yùn)算符與邏輯表達(dá)式 ............................................................................... 26
2.3.4 位運(yùn)算符 ........................................................................................................... 27
2.3.5 賦值運(yùn)算符與賦值表達(dá)式 ............................................................................... 28
2.3.6 其他運(yùn)算符 ....................................................................................................... 29
2.3.7 運(yùn)算符的優(yōu)先級(jí)與結(jié)合性 ............................................................................... 29
2.3.8 語(yǔ)句 ................................................................................................................... 30
2.4 程序流控制 .................................................................................................................. 30
2.4.1 分支語(yǔ)句 ........................................................................................................... 30
2.4.2 循環(huán)語(yǔ)句 ........................................................................................................... 34
2.4.3 跳轉(zhuǎn)語(yǔ)句 ........................................................................................................... 36
2.5 數(shù)組 .............................................................................................................................. 38
2.5.1 聲明數(shù)組 ........................................................................................................... 39
2.5.2 給數(shù)組分配元素 ............................................................................................... 39
2.5.3 數(shù)組元素的使用 ............................................................................................... 40
2.5.4 數(shù)組的初始化 ................................................................................................... 40
2.5.5 數(shù)組的引用 ....................................................................................................... 41
2.5.6 數(shù)組的遍歷 ....................................................................................................... 41
2.5.7 數(shù)組的最值 ....................................................................................................... 42
2.5.8 數(shù)組排序 ........................................................................................................... 42
2.6 Java Scanner 類 ........................................................................................................... 43
2.7 本章小結(jié) ...................................................................................................................... 45
2.8 習(xí)題 .............................................................................................................................. 45
第3 章 類與對(duì)象 ....................................................................................................................... 49
3.1 類的定義 ...................................................................................................................... 50
3.1.1 類的聲明 ........................................................................................................... 50
3.1.2 類的成員 ........................................................................................................... 50
3.1.3 成員變量和局部變量 ....................................................................................... 51
3.1.4 成員方法 ........................................................................................................... 53
3.1.5 方法的重載 ....................................................................................................... 54
3.1.6 構(gòu)造方法 ........................................................................................................... 55
3.1.7 類成員和實(shí)例成員 ........................................................................................... 56
3.2 對(duì)象的創(chuàng)建與使用 ...................................................................................................... 56
3.2.1 創(chuàng)建對(duì)象 ........................................................................................................... 56
3.2.2 使用對(duì)象 ........................................................................................................... 59
3.2.3 對(duì)象的引用和實(shí)體 ........................................................................................... 60
3.2.4 垃圾回收 ........................................................................................................... 61
3.3 訪問控制符 .................................................................................................................. 61
3.3.1 成員訪問控制符 ............................................................................................... 61
3.3.2 public 類與default 類 ....................................................................................... 64
3.4 static 關(guān)鍵字的使用 ..................................................................................................... 64
3.4.1 實(shí)例變量和類變量的區(qū)別 ............................................................................... 64
3.4.2 實(shí)例方法和類方法的區(qū)別 ............................................................................... 65
3.4.3 靜態(tài)代碼塊 ....................................................................................................... 67
3.5 this 關(guān)鍵字的使用 ....................................................................................................... 67
3.6 包的使用 ...................................................................................................................... 68
3.6.1 包的定義與使用 ............................................................................................... 69
3.6.2 import 語(yǔ)句 ....................................................................................................... 71
3.6.3 靜態(tài)導(dǎo)入 ........................................................................................................... 71
3.7 本章小結(jié) ...................................................................................................................... 73
3.8 習(xí)題 .............................................................................................................................. 73
第4 章 深入理解Java 語(yǔ)言面向?qū)ο?.................................................................................... 76
4.1 繼承 .............................................................................................................................. 76
4.1.1 繼承關(guān)系的引出 ............................................................................................... 76
4.1.2 繼承的限制 ....................................................................................................... 79
4.1.3 子類對(duì)象的實(shí)例化 ........................................................................................... 81
4.2 重寫 .............................................................................................................................. 83
4.2.1 方法的重寫 ....................................................................................................... 83
4.2.2 屬性的覆蓋 ....................................................................................................... 85
4.2.3 屬性的應(yīng)用 ....................................................................................................... 85
4.2.4 兩組重要概念的比較 ....................................................................................... 86
4.3 對(duì)象多態(tài)性 .................................................................................................................. 88
4.3.1 多態(tài)的概述與對(duì)象的類型轉(zhuǎn)換 ....................................................................... 88
4.3.2 instanceof 關(guān)鍵字 .............................................................................................. 91
4.4 Object 類 ...................................................................................................................... 92
4.4.1 基本概念 ........................................................................................................... 92
4.4.2 對(duì)象信息:toString() ........................................................................................ 92
4.4.3 對(duì)象比較:equals() .......................................................................................... 93
4.5 抽象類 .......................................................................................................................... 94
4.5.1 抽象類的定義 ................................................................................................... 95
4.5.2 抽象類實(shí)例化 ................................................................................................... 96
4.6 接口 .............................................................................................................................. 97
4.6.1 接口的定義 ....................................................................................................... 97
4.6.2 接口的使用—制定標(biāo)準(zhǔn) ............................................................................... 99
4.6.3 抽象類和接口的區(qū)別 ..................................................................................... 100
4.7 內(nèi)部類 ........................................................................................................................ 100
4.7.1 內(nèi)部類的定義 ................................................................................................. 100
4.7.2 使用static 定義內(nèi)部類 ................................................................................... 101
4.7.3 在方法中定義內(nèi)部類 ..................................................................................... 102
4.7.4 匿名內(nèi)部類 ..................................................................................................... 103
4.8 Lambda 表達(dá)式 .......................................................................................................... 104
4.8.1 表達(dá)式入門 ..................................................................................................... 104
4.8.2 函數(shù)式接口 ..................................................................................................... 106
4.9 本章小結(jié) .................................................................................................................... 107
4.10 習(xí)題 .......................................................................................................................... 108
第5 章 異常處理 ..................................................................................................................... 113
5.1 異常概述 .................................................................................................................... 113
5.1.1 什么是異常 ..................................................................................................... 113
5.1.2 異常類的層次結(jié)構(gòu) ......................................................................................... 113
5.2 Java 異常的捕獲和處理 ............................................................................................ 115
5.2.1 try-catch 語(yǔ)句捕獲異常 .................................................................................. 115
5.2.2 finally 語(yǔ)句 ...................................................................................................... 116
5.3 Java 異常的聲明和拋出 ............................................................................................ 118
5.3.1 throws 語(yǔ)句 ..................................................................................................... 118
5.3.2 throw 語(yǔ)句 ....................................................................................................... 119
5.3.3 throw 和throws ............................................................................................... 120
5.4 自定義異常類 ............................................................................................................ 121
5.5 本章小結(jié) .................................................................................................................... 122
5.6 習(xí)題 ............................................................................................................................ 122
第6 章 常用類與工具類 ......................................................................................................... 124
6.1 包裝類 ........................................................................................................................ 124
6.1.1 裝箱與拆箱 ..................................................................................................... 124
6.1.2 包裝類常用方法 ............................................................................................. 125
6.1.3 包裝類的應(yīng)用 ................................................................................................. 126
6.2 Math 類與Random 類 ............................................................................................... 126
6.2.1 Math 類 ............................................................................................................ 126
6.2.2 Random 類....................................................................................................... 128
6.3 字符串類 .................................................................................................................... 129
6.3.1 字符串的不變性 ............................................................................................. 129
6.3.2 字符串的常用方法 ......................................................................................... 130
6.3.3 StringBuilder 類和StringBuffer 類................................................................. 132
6.3.4 StringJoiner 類 ................................................................................................. 132
6.4 日期與時(shí)間類 ............................................................................................................ 133
6.4.1 基本概念 ......................................................................................................... 133
6.4.2 Date 類 ............................................................................................................ 133
6.4.3 Calendar 類 ...................................................................................................... 134
6.4.4 日期與時(shí)間格式化類 ..................................................................................... 135
6.5 集合類 ........................................................................................................................ 137
6.5.1 List 接口及其子類 .......................................................................................... 137
6.5.2 Set 接口 ........................................................................................................... 141
6.5.3 Collections 類 .................................................................................................. 142
6.5.4 Map 集合 ......................................................................................................... 143
6.6 泛型 ............................................................................................................................ 144
6.6.1 為什么要使用泛型 ......................................................................................... 144
6.6.2 泛型在集合中的應(yīng)用 ..................................................................................... 145
6.6.3 泛型接口 ......................................................................................................... 147
6.7 反射機(jī)制 .................................................................................................................... 148
6.7.1 反射概述 ......................................................................................................... 148
6.7.2 認(rèn)識(shí)Class 類 .................................................................................................. 148
6.7.3 通過(guò)反射機(jī)制查看類信息 ............................................................................. 150
6.8 本章小結(jié) .................................................................................................................... 152
6.9 習(xí)題 ............................................................................................................................ 153
第7 章 多線程 ......................................................................................................................... 158
7.1 線程簡(jiǎn)介 .................................................................................................................... 158
7.1.1 程序、進(jìn)程、線程 ......................................................................................... 159
7.1.2 多線程的優(yōu)勢(shì) ................................................................................................. 159
7.2 創(chuàng)建線程 .................................................................................................................... 160
7.2.1 繼承Thread 類 ................................................................................................ 160
7.2.2 實(shí)現(xiàn)Runnable 接口 ........................................................................................ 164
7.3 線程同步 .................................................................................................................... 166
7.3.1 線程安全問題 ................................................................................................. 166
7.3.2 線程的同步 ..................................................................................................... 167
7.4 本章小結(jié) .................................................................................................................... 169
7.5 習(xí)題 ............................................................................................................................ 169
第8 章 輸入輸出流 ................................................................................................................. 170
8.1 輸入輸出流概述 ........................................................................................................ 170
8.1.1 流的分類 ......................................................................................................... 171
8.1.2 輸入輸出流的套接 ......................................................................................... 171
8.2 文件類 ........................................................................................................................ 172
8.3 字節(jié)流 ........................................................................................................................ 175
8.3.1 標(biāo)準(zhǔn)流 ............................................................................................................. 177
8.3.2 文件流 ............................................................................................................. 178
8.3.3 字節(jié)過(guò)濾流 ..................................................................................................... 180
8.3.4 對(duì)象序列化及對(duì)象流 ..................................................................................... 183
8.4 字符流 ........................................................................................................................ 185
8.4.1 文件字符流 ..................................................................................................... 187
8.4.2 字符緩沖流 ..................................................................................................... 188
8.4.3 字節(jié)字符轉(zhuǎn)換流 ............................................................................................. 189
8.5 隨機(jī)流 ........................................................................................................................ 190
8.6 本章小結(jié) .................................................................................................................... 191
8.7 習(xí)題 ............................................................................................................................ 192
第9 章 圖形用戶界面 ............................................................................................................. 194
9.1 GUI 簡(jiǎn)介 .................................................................................................................... 194
9.1.1 JavaFX 與Swing、AWT ................................................................................ 194
9.1.2 JavaFX 開發(fā)環(huán)境配置 .................................................................................... 194
9.1.3 JavaFX 的基本框架 ........................................................................................ 196
9.2 常用的UI 組件 .......................................................................................................... 198
9.2.1 TextField 和TextArea ..................................................................................... 198
9.2.2 Label ................................................................................................................ 198
9.2.3 按鈕 ................................................................................................................. 199
9.3 布局面板 .................................................................................................................... 200
9.3.1 StackPane ........................................................................................................ 200
9.3.2 FlowPane ......................................................................................................... 201
9.3.3 GridPane .......................................................................................................... 201
9.3.4 BorderPane ...................................................................................................... 202
9.3.5 HBox 和VBox ................................................................................................ 202
9.4 形狀類 ........................................................................................................................ 203
9.4.1 Text 類 ............................................................................................................. 203
9.4.2 Line 類 ............................................................................................................. 203
9.4.3 Rectangle 類 .................................................................................................... 203
9.4.4 Circle 類 .......................................................................................................... 203
9.4.5 Ellipse 類 ......................................................................................................... 205
9.4.6 Arc 類 .............................................................................................................. 205
9.5 事件處理機(jī)制 ............................................................................................................ 205
9.5.1 事件和事件源 ................................................................................................. 205
9.5.2 事件處理器 ..................................................................................................... 205
9.5.3 Lambda 表達(dá)式簡(jiǎn)化事件處理 ....................................................................... 207
9.6 FXML 設(shè)計(jì)用戶界面 ................................................................................................ 208
9.7 JavaFX 可視化布局工具 ........................................................................................... 210
9.7.1 JavaFX Scene Builder 的下載與安裝 ............................................................. 210
9.7.2 JavaFX Scene Builder 的使用 ........................................................................ 211
9.8 本章小結(jié) .................................................................................................................... 216
9.9 習(xí)題 ............................................................................................................................ 216
第10 章 數(shù)據(jù)庫(kù)編程 ............................................................................................................... 217
10.1 數(shù)據(jù)庫(kù)概述 .............................................................................................................. 217
10.1.1 數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)系統(tǒng)概述 ........................................................................... 217
10.1.2 關(guān)系型數(shù)據(jù)庫(kù) ............................................................................................... 219
10.2 SQL 語(yǔ)言基礎(chǔ) ......................................................................................................... 220
10.3 MySQL 數(shù)據(jù)庫(kù)簡(jiǎn)介 ................................................................................................ 222
10.3.1 MySQL 安裝與配置 ..................................................................................... 222
10.3.2 MySQL 建庫(kù)建表及相關(guān)操作 ..................................................................... 222
10.4 Java 數(shù)據(jù)庫(kù)編程 ...................................................................................................... 223
10.4.1 JDBC 簡(jiǎn)介 .................................................................................................... 223
10.4.2 JDBC 常用API ............................................................................................. 224
10.4.3 JDBC 編程 .................................................................................................... 224
10.5 數(shù)據(jù)庫(kù)應(yīng)用綜合實(shí)例 .............................................................................................. 229
10.5.1 數(shù)據(jù)模型設(shè)計(jì) ............................................................................................... 229
10.5.2 數(shù)據(jù)類設(shè)計(jì) ................................................................................................... 230
10.5.3 實(shí)現(xiàn)CRUD ................................................................................................... 231
10.5.4 界面設(shè)計(jì) ....................................................................................................... 234
10.6 本章小結(jié) .................................................................................................................. 242
10.7 習(xí)題 .......................................................................................................................... 242