本書基于JavaSE8編寫,清晰地介紹了面向對象編程的概念、語言基礎等,涵蓋了Lambda表達式、類型注解、默認方法、聚合操作、日期/時間API等JavaSE8的新特性,更新了限制惡意小程序的攻擊和RIA等相關內容。每章后面的問題和練習可以幫助讀者鞏固所學知識,此外,附錄中還給出Java編程語言認證考試的相關內容。本書可作為高等院校計算機等相關專業(yè)的基礎教材,也可作為編程初學者和中級程序員的參考資料。
目 錄
The Java Tutorial: A Short Course on the Basics, Sixth Edition
出版者的話
譯者序
前言
第1章快速入門 1
1.1關于Java技術 1
1.1.1Java程序語言 1
1.1.2Java平臺 2
1.1.3Java技術的功能 3
1.1.4Java技術的優(yōu)勢 3
1.2“Hello World!”實例程序 4
1.2.1用NetBeans IDE開發(fā)“Hello World!” 4
1.2.2在Microsoft Windows中開發(fā)“Hello World!” 10
1.2.3在Solaris和Linux中開發(fā)“Hello World!” 13
1.3“Hello World!”實例程序剖析 15
1.3.1源碼注釋 15
1.3.2HelloWorldApp類定義 15
1.3.3main方法 16
1.4常見問題(及其解決方案) 16
1.4.1編譯器問題 16
1.4.2運行時問題 18
1.5問題和練習:快速入門 19
第2章面向對象的編程概念 21
2.1對象 21
2.2類 22
2.3繼承 23
2.4接口 24
2.5包 25
2.6問題和練習:面向對象的編程概念 25
第3章語言基礎 27
3.1變量 27
3.1.1命名 28
3.1.2基本數(shù)據類型 28
3.1.3數(shù)組 32
3.1.4小結 35
3.1.5問題和練習:變量 36
3.2運算符 36
3.2.1賦值運算符、算術運算符和一元運算符 37
3.2.2等式運算符、關系運算符和條件運算符 40
3.2.3位運算符和移位運算符 42
3.2.4小結 42
3.2.5問題和練習:運算符 43
3.3表達式、語句和塊 44
3.3.1表達式 44
3.3.2語句 45
3.3.3塊 45
3.3.4問題和練習:表達式、語句和塊 46
3.4控制流語句 46
3.4.1if-then語句和if-then-else語句 46
3.4.2switch語句 47
3.4.3while語句和do-while語句 51
3.4.4for語句 52
3.4.5分支語句 53
3.4.6小結 56
3.4.7問題和練習:控制流語句 56
第4章類和對象 58
4.1類 58
4.1.1聲明類 59
4.1.2聲明成員變量 60
4.1.3定義方法 61
4.1.4構建構造器 62
4.1.5將消息傳給方法或構造器 63
4.2對象 66
4.2.1創(chuàng)建對象 67
4.2.2使用對象 69
4.3類的更多細節(jié) 71
4.3.1從方法返回值 71
4.3.2使用this關鍵字 73
4.3.3控制對類成員的訪問 74
4.3.4類成員 75
4.3.5初始化字段 78
4.3.6小結 79
4.3.7問題和練習:類 79
4.3.8問題和練習:對象 80
4.4嵌套類 81
4.4.1為什么使用嵌套類 81
4.4.2靜態(tài)嵌套類 82
4.4.3內部類 82
4.4.4覆蓋 82
4.4.5序列化 83
4.4.6內部類實例 83
4.4.7局部類和匿名類 85
4.4.8Lambda表達式 92
4.4.9何時使用嵌套類、局部類、匿名類和Lambda表達式 105
4.4.10問題和練習:嵌套類 105
4.5枚舉類型 106
4.5.1問題和練習:枚舉類型 108
第5章注解 109
5.1注解基礎知識 109
5.1.1注解的格式 109
5.1.2注解的使用場景 110
5.2聲明注解類型 110
5.3預定義注解類型 111
5.3.1Java語言使用的注解類型 111
5.3.2應用于其他注解的注解 112
5.4類型注解和可插拔類型系統(tǒng) 113
5.5重復注解 114
5.5.1聲明重復注解類型 114
5.5.2聲明容器注解類型 115
5.5.3檢索注解 115
5.5.4設計時的注意事項 115
5.6問題和練習:注解 115
第6章接口與繼承 117
6.1接口 117
6.1.1Java語言的接口 117
6.1.2將接口用作API 118
6.1.3定義接口 118
6.1.4實現(xiàn)接口 119
6.1.5將接口用作類型 120
6.1.6進化接口 121
6.1.7默認方法 122
6.1.8小結 129
6.1.9問題和練習:接口 129
6.2繼承 130
6.2.1Java平臺中類的層次結構 130
6.2.2繼承實例 131
6.2.3子類能做什么 132
6.2.4超類的私有成員 132
6.2.5轉換對象 132
6.2.6狀態(tài)、實現(xiàn)和類型的多重繼承 133
6.2.7覆蓋和屏蔽方法 133
6.2.8多態(tài)性 136
6.2.9屏蔽字段 138
6.2.10使用super關鍵字 138
6.2.11將對象用作超類 140
6.2.12編寫final類和方法 142
6.2.13抽象方法和類 143
6.2.14小結 145
6.2.15問題和練習:繼承 145
第7章泛型 147
7.1為什么用泛型 147
7.2泛型類型 147
7.2.1一個簡單的Box類 148
7.2.2Box類的泛型版本 148
7.2.3類型參數(shù)命名約定 148
7.2.4泛型類型的調用和實例化 149
7.2.5鉆石運算符 149
7.2.6多個類型參數(shù) 149
7.2.7參數(shù)化類型 150
7.2.8原生類型 150
7.3泛型方法 151
7.4受限類型形式參數(shù) 152
7.4.1多重限制 153
7.4.2泛型方法和受限類型形式參數(shù) 154
7.5泛型、繼承和子類型 154
7.5.1泛型類和子類型 155
7.6類型推導 156
7.6.1類型推導和泛型方法 156
7.6.2類型推導和泛型類的實例化 157
7.6.3類型推導與泛型類和非泛型類的泛型構造函數(shù) 157
7.6.4目標類型 158
7.7通配符 159
7.7.1上界通配符 159
7.7.2無界通配符 160
7.7.3下界通配符 160
7.7.4通配符和子類型 161
7.7.5通配符匹配和輔助方法 162
7.7.6通配符使用指南 164
7.8類型擦除 165
7.8.1泛型類型的擦除 165
7.8.2泛型方法的擦除 166
7.8.3類型擦除效果和橋方法 167
7.8.4不可具體化類型和可變參數(shù)方法 168
7.9泛型的局限性 170
7.9.1不能用基本數(shù)據類型實例化泛型類型 170
7.9.2不能創(chuàng)建類型參數(shù)實例 171
7.9.3不能聲明類型為“類型參數(shù)”