第1章 Java語言概述... 1
1.1 Java起源與發(fā)展... 1
1.1.1 Java的起源... 1
1.1.2 Java的發(fā)展歷程... 2
1.1.3 Java語言的優(yōu)點(diǎn)... 3
1.2 Java平臺(tái)與開發(fā)環(huán)境... 3
1.2.1 Java平臺(tái)與應(yīng)用領(lǐng)域... 3
1.2.2 JDK、JRE和JVM.. 4
1.2.3 Java字節(jié)碼與平臺(tái)獨(dú)立... 4
1.2.4 JDK的下載與安裝... 5
1.2.5 Java API文檔... 6
1.3 Java程序基本結(jié)構(gòu)... 6
1.3.1 Java程序開發(fā)步驟... 6
1.3.2 第一個(gè)程序分析... 8
1.4 程序文檔風(fēng)格和注釋... 9
1.4.1 一致的縮進(jìn)和空白... 9
1.4.2 塊的風(fēng)格... 9
1.4.3 Java程序注釋... 10
1.5 Eclipse集成開發(fā)環(huán)境... 10
1.6 小結(jié)... 12
編程練習(xí)... 12
第2章 Java語言基礎(chǔ)... 13
2.1 簡(jiǎn)單程序的開發(fā)... 13
2.1.1 從鍵盤讀取數(shù)據(jù)... 14
2.1.2 變量與賦值... 15
2.1.3 Java標(biāo)識(shí)符... 15
2.1.4 Java關(guān)鍵字... 16
2.2 數(shù)據(jù)類型... 16
2.2.1 數(shù)據(jù)類型概述... 16
2.2.2 字面值和常量... 17
2.2.3 整數(shù)類型... 17
2.2.4 浮點(diǎn)類型... 19
2.2.5 字符類型... 20
2.2.6 布爾類型... 21
2.2.7 字符串類型... 22
2.3 運(yùn)算符... 23
2.3.1 算術(shù)運(yùn)算符... 23
2.3.2 關(guān)系運(yùn)算符... 25
2.3.3 邏輯運(yùn)算符... 25
2.3.4 賦值運(yùn)算符... 26
2.3.5 位運(yùn)算符... 28
2.3.6 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性... 30
2.4 數(shù)據(jù)類型轉(zhuǎn)換... 31
2.4.1 自動(dòng)類型轉(zhuǎn)換... 31
2.4.2 強(qiáng)制類型轉(zhuǎn)換... 32
2.4.3 表達(dá)式中類型自動(dòng)提升... 33
2.5 小結(jié)... 34
編程練習(xí)... 34
第3章 選擇與循環(huán)... 36
3.1 選擇... 36
3.1.1 單分支if語句... 36
3.1.2 雙分支if-else語句... 37
3.1.3 嵌套的if語句和多分支的if-else語句... 39
3.1.4 條件運(yùn)算符... 40
3.1.5 switch語句結(jié)構(gòu)... 41
3.2 循環(huán)... 43
3.2.1 while循環(huán)... 43
3.2.2 do-while循環(huán)... 45
3.2.3 for循環(huán)... 45
3.2.4 循環(huán)的嵌套... 47
3.2.5 break語句和continue語句... 47
3.3 示例學(xué)習(xí)... 49
3.3.1 任意抽取一張牌... 49
3.3.2 求最大公約數(shù)... 50
3.3.3 打印輸出若干素?cái)?shù)... 51
3.4 小結(jié)... 52
編程練習(xí)... 53
第4章 類和對(duì)象... 55
4.1 面向?qū)ο蟾攀?.. 55
4.1.1 OOP的產(chǎn)生... 55
4.1.2 面向?qū)ο蟮幕靖拍?.. 56
4.1.3 面向?qū)ο蠡咎卣?.. 57
4.1.4 OOP的優(yōu)勢(shì)... 58
4.2 為對(duì)象定義類... 58
4.2.1 類的定義... 59
4.2.2 對(duì)象的使用... 62
4.2.3 理解棧與堆... 64
4.2.4 用UML圖表示類... 64
4.3 方法設(shè)計(jì)... 65
4.3.1 如何設(shè)計(jì)方法... 65
4.3.2 方法的調(diào)用... 67
4.3.3 方法重載... 67
4.3.4 構(gòu)造方法... 68
4.3.5 this關(guān)鍵字的使用... 70
4.3.6 方法參數(shù)的傳遞... 71
4.4 靜態(tài)變量和靜態(tài)方法... 72
4.4.1 靜態(tài)變量... 72
4.4.2 靜態(tài)方法... 74
4.4.3 單例模式... 75
4.4.4 遞歸... 76
4.5 對(duì)象初始化和清除... 77
4.5.1 實(shí)例變量的初始化... 77
4.5.2 靜態(tài)變量的初始化... 79
4.5.3 垃圾回收器... 80
4.5.4 變量作用域和生存期... 81
4.6 包與類的導(dǎo)入... 82
4.6.1 包... 82
4.6.2 類的導(dǎo)入... 84
4.6.3 Java編譯單元... 85
4.7 小結(jié)... 85
編程練習(xí)... 86
第5章 數(shù)組... 90
5.1 創(chuàng)建和使用數(shù)組... 90
5.1.1 數(shù)組定義... 90
5.1.2 增強(qiáng)的for循環(huán)... 93
5.1.3 數(shù)組元素的復(fù)制... 93
5.1.4 數(shù)組參數(shù)與返回值... 95
5.1.5 可變參數(shù)的方法... 96
5.1.6 實(shí)例:隨機(jī)抽取4張牌... 97
5.1.7 實(shí)例:一個(gè)整數(shù)棧類... 98
5.2 Arrays類... 99
5.2.1 數(shù)組的排序... 100
5.2.2 元素的查找... 100
5.2.3 數(shù)組元素的復(fù)制... 101
5.2.4 填充數(shù)組元素... 101
5.2.5 數(shù)組的比較... 102
5.3 二維數(shù)組... 103
5.3.1 二維數(shù)組定義... 103
5.3.2 數(shù)組元素的使用... 104
5.3.3 數(shù)組初始化器... 105
5.3.4 實(shí)例:矩陣乘法... 105
5.3.5 不規(guī)則二維數(shù)組... 106
5.4 小結(jié)... 108
編程練習(xí)... 108
第6章 字符串... 111
6.1 String類... 111
6.1.1 創(chuàng)建String類對(duì)象... 111
6.1.2 字符串基本操作... 112
6.1.3 字符串查找... 114
6.1.4 字符串轉(zhuǎn)換為數(shù)組... 114
6.1.5 字符串比較... 115
6.1.6 字符串的拆分與組合... 117
6.1.7 String對(duì)象的不變性... 118
6.1.8 命令行參數(shù)... 118
6.2 格式化輸出... 119
6.3 StringBuilder類和StringBuffer類... 122
6.3.1 創(chuàng)建StringBuilder對(duì)象... 122
6.3.2 StringBuilder的訪問和修改... 122
6.3.3 運(yùn)算符“ ”的重載... 124
6.4 小結(jié)... 124
編程練習(xí)... 124
第7章 繼承與多態(tài)... 126
7.1 類的繼承... 126
7.1.1 類繼承的實(shí)現(xiàn)... 126
7.1.2 方法覆蓋... 129
7.1.3 super關(guān)鍵字... 130
7.1.4 調(diào)用父類的構(gòu)造方法... 132
7.2 封裝性與訪問修飾符... 133
7.2.1 類的訪問權(quán)限... 133
7.2.2 類成員的訪問權(quán)限... 134
7.3 防止類擴(kuò)展和方法覆蓋... 135
7.3.1 final修飾類... 135
7.3.2 final修飾方法... 136
7.3.3 final修飾變量... 136
7.4 抽象類... 137
7.5 對(duì)象轉(zhuǎn)換與多態(tài)... 138
7.5.1 對(duì)象轉(zhuǎn)換... 139
7.5.2 instanceof運(yùn)算符... 140
7.5.3 多態(tài)與動(dòng)態(tài)綁定... 140
7.6 小結(jié)... 142
編程練習(xí)... 142
第8章 Java常用核心類... 144
8.1 Object:終極父類... 144
8.1.1 toString()方法... 145
8.1.2 equals()方法... 145
8.1.3 hashCode()方法... 146
8.1.4 clone()方法... 147
8.1.5 finalize()方法... 148
8.2 Math類... 149
8.3 基本類型包裝類... 151
8.3.1 Character類... 151
8.3.2 Boolean類... 152
8.3.3 創(chuàng)建數(shù)值類對(duì)象... 153
8.3.4 數(shù)值類的常量... 154
8.3.5 自動(dòng)裝箱與自動(dòng)拆箱... 155
8.3.6 字符串轉(zhuǎn)換為基本類型... 156
8.3.7 BigInteger和BigDecimal類... 156
8.4 日期-時(shí)間API 158
8.4.1 本地日期類LocalDate. 158
8.4.2 本地時(shí)間類LocalTime. 160
8.4.3 本地日期時(shí)間類LocalDateTime. 161
8.4.4 Instant類、Duration類和Period類... 162
8.4.5 其他常用類... 164
8.4.6 日期時(shí)間解析和格式化... 164
8.5 小結(jié)... 166
編程練習(xí)... 166
第9章 內(nèi)部類、枚舉和注解... 168
9.1 內(nèi)部類... 168
9.1.1 成員內(nèi)部類... 169
9.1.2 局部?jī)?nèi)部類... 170
9.1.3 匿名內(nèi)部類... 171
9.1.4 靜態(tài)內(nèi)部類... 173
9.2 枚舉類型... 175
9.2.1 枚舉類型的定義... 175
9.2.2 枚舉類型的方法... 175
9.2.3 枚舉在switch中的應(yīng)用... 176
9.2.4 枚舉類型的構(gòu)造方法... 177
9.3 注解類型... 178
9.3.1 注解概述... 179
9.3.2 標(biāo)準(zhǔn)注解... 179
9.3.3 定義注解類型... 181
9.3.4 標(biāo)準(zhǔn)元注解... 183
9.4 小結(jié)... 184
編程練習(xí)... 185
第10章 接口與Lambda表達(dá)式... 188
10.1 接口... 188
10.1.1 接口定義... 188
10.1.2 接口的實(shí)現(xiàn)... 189
10.1.3 接口的繼承... 190
10.1.4 接口類型的使用... 192
10.1.5 常量... 192
10.2 靜態(tài)方法和默認(rèn)方法... 192
10.2.1 靜態(tài)方法... 193
10.2.2 默認(rèn)方法... 193
10.2.3 解決默認(rèn)方法沖突... 193
10.3 接口示例... 195
10.3.1 Comparable接口... 195
10.3.2 Comparator接口... 197
10.4 Lambda表達(dá)式... 198
10.4.1 Lambda表達(dá)式簡(jiǎn)介... 198
10.4.2 函數(shù)式接口... 199
10.4.3 Lambda表達(dá)式的語法... 199
10.4.4 預(yù)定義的函數(shù)式接口... 200
10.4.5 方法引用與構(gòu)造方法引用... 204
10.5 小結(jié)... 206
編程練習(xí)... 206