第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)點... 3
1.2 Java平臺與開發(fā)環(huán)境... 3
1.2.1 Java平臺與應(yīng)用領(lǐng)域... 3
1.2.2 JDK、JRE和JVM.. 4
1.2.3 Java字節(jié)碼與平臺獨立... 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 第一個程序分析... 8
1.4 程序文檔風(fēng)格和注釋... 9
1.4.1 一致的縮進和空白... 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 簡單程序的開發(fā)... 13
2.1.1 從鍵盤讀取數(shù)據(jù)... 14
2.1.2 變量與賦值... 15
2.1.3 Java標識符... 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 浮點類型... 19
2.2.5 字符類型... 20
2.2.6 布爾類型... 21
2.2.7 字符串類型... 22
2.3 運算符... 23
2.3.1 算術(shù)運算符... 23
2.3.2 關(guān)系運算符... 25
2.3.3 邏輯運算符... 25
2.3.4 賦值運算符... 26
2.3.5 位運算符... 28
2.3.6 運算符的優(yōu)先級和結(jié)合性... 30
2.4 數(shù)據(jù)類型轉(zhuǎn)換... 31
2.4.1 自動類型轉(zhuǎn)換... 31
2.4.2 強制類型轉(zhuǎn)換... 32
2.4.3 表達式中類型自動提升... 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 條件運算符... 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 打印輸出若干素數(shù)... 51
3.4 小結(jié)... 52
編程練習(xí)... 53
第4章 類和對象... 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)勢... 58
4.2 為對象定義類... 58
4.2.1 類的定義... 59
4.2.2 對象的使用... 62
4.2.3 理解棧與堆... 64
4.2.4 用UML圖表示類... 64
4.3 方法設(shè)計... 65
4.3.1 如何設(shè)計方法... 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 對象初始化和清除... 77
4.5.1 實例變量的初始化... 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 增強的for循環(huán)... 93
5.1.3 數(shù)組元素的復(fù)制... 93
5.1.4 數(shù)組參數(shù)與返回值... 95
5.1.5 可變參數(shù)的方法... 96
5.1.6 實例:隨機抽取4張牌... 97
5.1.7 實例:一個整數(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 實例:矩陣乘法... 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類對象... 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對象的不變性... 118
6.1.8 命令行參數(shù)... 118
6.2 格式化輸出... 119
6.3 StringBuilder類和StringBuffer類... 122
6.3.1 創(chuàng)建StringBuilder對象... 122
6.3.2 StringBuilder的訪問和修改... 122
6.3.3 運算符“ ”的重載... 124
6.4 小結(jié)... 124
編程練習(xí)... 124
第7章 繼承與多態(tài)... 126
7.1 類的繼承... 126
7.1.1 類繼承的實現(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 防止類擴展和方法覆蓋... 135
7.3.1 final修飾類... 135
7.3.2 final修飾方法... 136
7.3.3 final修飾變量... 136
7.4 抽象類... 137
7.5 對象轉(zhuǎn)換與多態(tài)... 138
7.5.1 對象轉(zhuǎn)換... 139
7.5.2 instanceof運算符... 140
7.5.3 多態(tài)與動態(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ù)值類對象... 153
8.3.4 數(shù)值類的常量... 154
8.3.5 自動裝箱與自動拆箱... 155
8.3.6 字符串轉(zhuǎn)換為基本類型... 156
8.3.7 BigInteger和BigDecimal類... 156
8.4 日期-時間API 158
8.4.1 本地日期類LocalDate. 158
8.4.2 本地時間類LocalTime. 160
8.4.3 本地日期時間類LocalDateTime. 161
8.4.4 Instant類、Duration類和Period類... 162
8.4.5 其他常用類... 164
8.4.6 日期時間解析和格式化... 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 局部內(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 標準注解... 179
9.3.3 定義注解類型... 181
9.3.4 標準元注解... 183
9.4 小結(jié)... 184
編程練習(xí)... 185
第10章 接口與Lambda表達式... 188
10.1 接口... 188
10.1.1 接口定義... 188
10.1.2 接口的實現(xiàn)... 189
10.1.3 接口的繼承... 190
10.1.4 接口類型的使用... 192
10.1.5 常量... 192
10.2 靜態(tài)方法和默認方法... 192
10.2.1 靜態(tài)方法... 193
10.2.2 默認方法... 193
10.2.3 解決默認方法沖突... 193
10.3 接口示例... 195
10.3.1 Comparable接口... 195
10.3.2 Comparator接口... 197
10.4 Lambda表達式... 198
10.4.1 Lambda表達式簡介... 198
10.4.2 函數(shù)式接口... 199
10.4.3 Lambda表達式的語法... 199
10.4.4 預(yù)定義的函數(shù)式接口... 200
10.4.5 方法引用與構(gòu)造方法引用... 204
10.5 小結(jié)... 206
編程練習(xí)... 206