內容簡介
全書共50章,分為兩大部分。第 1部分(第 1章到第 22章)主要介紹Java語言基礎知識及其功能特性。第 2部分(第 23章到第50章)主要介紹如何有效地構建Android應用程式。
本書適合任何想要學習Java語言的讀者閱讀,特別適合想要成為Android應用程式開發人員的讀者學習參考。
圖書目錄
第 1章
Java基礎............................................. 1
1.1 下載和安裝Java....................................... 1
1.1.1 在Windows上的安裝................... 1
1.1.2 在Linux系統上的安裝................. 2
1.1.3 在Mac OS X系統上的安裝......... 2
1.1.4 設定系統環境變數........................ 2
1.1.5 測試安裝........................................ 3
1.1.6 下載Java API文檔........................ 3
1.2 第 一個Java程式...................................... 3
1.2.1 編寫Java程式............................... 3
1.2.2 編譯Java程式............................... 4
1.2.3 運行Java程式............................... 4
1.3 Java編碼慣例........................................... 5
1.4 集成開發環境........................................... 5
1.5 本章小結................................................... 6
第 2章 語言基礎.............................................. 7
2.1 ASCII和Unicode ..................................... 7
2.2 分隔設定....................................................... 8
2.3 基本類型................................................... 8
2.4 變數........................................................... 9
2.5 常量..........................................................11
2.6 字面值......................................................11
2.6.1 整數字面值...................................11
2.6.2 浮點數字面值...............................12
2.6.3 布爾字面值...................................13
2.6.4 字元字面值...................................13
2.7 基本類型轉換..........................................14
2.7.1 加寬轉換.......................................14
2.7.2 收窄轉換.......................................14
2.8 操作符......................................................15
2.8.1 一元操作符...................................16
2.8.2 算術操作符...................................17
2.8.3 相等操作符...................................18
2.8.4 關係操作符...................................18
2.8.5 條件操作符...................................19
2.8.6 位移操作符...................................19
2.8.7 賦值操作符...................................20
2.8.8 整數按位操作符& | ^ ...................20
2.8.9 邏輯操作符 & | ^ .........................21
2.8.10 操作符優先權 .............................21
2.8.11 提升 ............................................ 22
2.9 注釋......................................................... 22
2.10 本章小結............................................... 23
第3章 語句...................................................... 24
3.1 概覽......................................................... 24
3.2 if語句...................................................... 25
3.3 while語句............................................... 26
3.4 do-while循環.......................................... 28
3.5 for語句.................................................... 28
3.6
break語句............................................... 31
3.7 continue語句........................................... 32
3.8 switch語句.............................................. 32
3.9 本章小結................................................. 33
第4章 對象和類............................................. 34
4.1 什麼是對象............................................. 34
4.2 Java類..................................................... 34
4.2.1 欄位.............................................. 36
4.2.2 方法.............................................. 36
4.2.3 Main方法..................................... 36
4.2.4 構造方法...................................... 37
4.2.5 Varargs .......................................... 37
4.2.6
UML類圖中的類成員................. 38
4.3 創建對象................................................. 38
4.4 null關鍵字.............................................. 38
4.5 對象的記憶體分配..................................... 39
4.6 Java包..................................................... 40
4.7 封裝和訪問控制..................................... 41
4.7.1 類訪問控制修飾符....................... 41
4.7.2 類成員訪問控制修飾符............... 42
4.8
this關鍵字............................................... 44
4.9 使用其他的類......................................... 45
4.10 final變數............................................... 46
4.11 靜態成員............................................... 47
4.12 靜態final變數...................................... 49
4.13 靜態導入............................................... 50
4.14 變數作用域........................................... 50
4.15 方法重載............................................... 51
4.16 靜態工廠方法....................................... 52
4.17 傳值或傳引用....................................... 53
4.18 載入、連線和初始化............................ 53
4.18.1 載入.............................................54
4.18.2 連線.............................................54
4.18.3 初始化.........................................54
4.19 對象創建初始化....................................55
4.20 垃圾收集................................................57
4.21 本章小結................................................57
第5章 核心類..................................................58
5.1 java.lang.Object........................................58
5.2 java.lang.String.........................................59
5.2.1 比較兩個字元串...........................59
5.2.2 字元串字面值...............................60
5.2.3 轉義特定字元...............................60
5.2.4 字元串上的switch........................61
5.2.5 String類的構造方法.....................61
5.2.6 String類的方法............................62
5.3 java.lang.StringBuffer和java.lang.StringBuilder.............................64
5.3.1 StringBuilder類的構造方法.........64
5.3.2 StringBuilder類的方法.................64
5.4 基本類型包裝器......................................65
5.4.1 java.lang.Boolean ..........................66
5.4.2 java.lang.Character ........................66
5.5 java.lang.Class..........................................66
5.6 java.lang.System.......................................67
5.7 java.util.Scanner .......................................70
5.8 本章小結..................................................70
第6章 數組.......................................................71
6.1 概覽..........................................................71
6.2 遍歷數組..................................................72
6.3 java.util.Arrays類....................................73
6.4 修改數組的大小......................................73
6.5 查找一個數組..........................................74
6.6 給main方法傳入一個字元串數組........75
6.7 多維數組..................................................76
6.8 本章小結..................................................76
第7章 繼承.......................................................77
7.1 概覽..........................................................77
7.1.1 extends關鍵字..............................77
7.1.2 is-a關係........................................78
7.2 可訪問性..................................................79
7.3 方法覆蓋..................................................80
7.4 調用超類的構造方法..............................81
7.5 調用超類的隱藏方法.............................. 82
7.6 類型強制轉換......................................... 83
7.7 final類..................................................... 83
7.8 instanceof操作符.................................... 84
7.9 本章小結................................................. 84
第8章 錯誤處理............................................. 85
8.1 捕獲異常................................................. 85
8.2 沒有catch的try...................................... 86
8.3 捕獲多個異常......................................... 87
8.4 try-with-resource語句............................. 87
8.5 java.lang.Exception類............................. 88
8.6 從方法中拋出一個異常.......................... 89
8.7 用戶定義的異常..................................... 90
8.8 異常處理的注意事項.............................. 91
8.9 本章小結................................................. 91
第9章 運算元字............................................. 92
9.1 裝箱和拆箱............................................. 92
9.2 數字解析................................................. 92
9.3 數字格式化............................................. 93
9.4 使用java.text.NumberFormat進行數字解析 ................................................. 94
9.5 java.lang.Math類.................................... 94
9.6
計算貨幣................................................. 95
9.7 生成隨機數............................................. 95
9.8 本章小結................................................. 96
第 10章 接口和抽象類................................. 97
10.1 接口的概念........................................... 97
10.2 技術上的接口....................................... 98
10.2.1 接口中的欄位............................. 99
10.2.2 抽象方法 .................................... 99
10.2.3 擴展一個接口............................. 99
10.3 默認方法............................................. 100
10.4 靜態方法............................................. 100
10.5 基類..................................................... 100
10.6 抽象類................................................. 102
10.7 本章小結............................................. 102
第 11章 多態.................................................. 103
11.1 概覽..................................................... 103
11.2 多態的套用......................................... 105
11.3 多態和反射......................................... 106
11.4 本章小結............................................. 107
第 12章 枚舉..................................................108
12.1 概覽......................................................108
12.2 類中的enum........................................109
12.3 java.lang.Enum類................................109
12.4 遍歷枚舉值..........................................110
12.5 enum上的switch.................................110
12.6 枚舉成員..............................................110
12.7 本章小結..............................................112
第 13章 操作日期和時間...........................113
13.1 概述......................................................113
13.2 Instant類..............................................113
13.3 LocalDate .............................................114
13.4 Period ...................................................116
13.5 LocalDateTime .....................................117
13.6 時區......................................................118
13.7 ZonedDateTime ....................................119
13.8 Duration................................................120
13.9 格式化日期時間..................................123
13.10 解析一個日期時間............................124
13.11 使用舊的日期和時間API .................125
13.11.1 java.util.Date類.......................125
13.11.2 java.util.Calendar類................125
13.11.3 使用DateFormat解析和格式化.....................................126
13.12 本章小結............................................128
第 14章 集合框架.........................................129
14.1 集合框架概覽......................................129
14.3 List和ArrayList ..................................130
14.4 使用Iterator和for遍歷一個集合......132
14.5 Set和HashSet......................................133
14.6 Queue和LinkedList ............................133
14.7 集合轉換..............................................134
14.8 Map和HashMap .................................135
14.9 使得對象可比較和可排序..................136
14.9.1 使用java.lang.Comparable .......136
14.9.2 使用Comparator .......................138
14.10 本章小結............................................141
第 15章 泛型..................................................142
15.1 沒有泛型的日子..................................142
15.2 泛型類型..............................................142
15.3 使用不帶類型參數的泛型類型.......... 145
15.4 使用 通配符........................................ 145
15.5 在方法中使用界限通配符.................. 147
15.6 泛型方法............................................. 148
15.7 編寫泛型類型..................................... 148
15.8 本章小結............................................. 149
第 16章 輸入/輸出....................................... 150
16.1 檔案系統和路徑................................. 150
16.2 檔案和的處理和操作.................. 152
16.2.1 創建和刪除檔案和........... 152
16.2.2 獲取一個對象................... 152
16.2.3 複製和移動檔案....................... 153
16.2.4 從檔案讀取和寫入到檔案....... 153
16.3 輸入/輸出流........................................ 155
16.4 讀二進制數據..................................... 155
16.5 寫二進制數據..................................... 158
16.6 寫文本(字元) ................................. 161
16.6.1 Writer ........................................ 161
16.6.2 OutputStreamWriter .................. 162
16.6.3 PrintWriter ................................ 163
16.7 讀文本(字元) ................................. 164
16.7.1 Reader ....................................... 164
16.7.2 InputStreamReader.................... 165
16.7.3 BufferedReader ......................... 166
16.8 使用PrintStream記錄日誌................. 167
16.9 隨機訪問檔案..................................... 168
16.10 對象序列化....................................... 171
16.11 本章小結........................................... 173
第 17章 註解.................................................. 174
17.1 概覽..................................................... 174
17.1.1 註解和註解類型....................... 174
17.1.2 註解語法.................................. 174
17.1.3 Annotation接口........................ 175
17.2 標準註解............................................. 175
17.2.1 Override .................................... 175
17.2.2 Deprecated ................................ 176
17.2.3 SuppressWarnings ..................... 177
17.3 常用註解............................................. 178
17.4 標準元-註解........................................ 178
17.4.1 Documented .............................. 178
17.4.2 Retention................................... 179
17.4.3 Retention................................... 179
17.4.4 Target ........................................ 179
17.5 定製註解類型......................................179
17.5.1 編寫自己的定製註解類型.......180
17.5.2 使用定製註解類型...................180
17.5.3 使用反射來查詢註解...............180
17.6 本章小結..............................................181
第 18章 嵌套類和內部類...........................182
18.1 嵌套類概覽..........................................182
18.2
靜態嵌套類..........................................183
18.3 成員內部類..........................................184
18.4 局部內部類..........................................185
18.5 匿名內部類..........................................187
18.6 嵌套類和內部類的背後......................188
18.7 本章小結..............................................189
第 19章 執行緒..................................................190
19.1 Java執行緒簡介......................................190
19.2 創建一個執行緒......................................190
19.2.1 擴展執行緒...................................191
19.2.2 實現Runnable...........................192
19.3 使用多執行緒..........................................193
19.4 執行緒優先權..........................................194
19.5 停止執行緒..............................................196
19.6 同步......................................................198
19.6.1 執行緒干擾...................................198
19.6.2 原子操作...................................199
19.6.3 方法同步...................................199
19.6.4 塊同步.......................................200
19.7 可見性..................................................200
19.8 執行緒協調..............................................202
19.9 使用定時器..........................................206
19.10 本章小結............................................208
第 20章 並發工具.........................................209
20.1 原子變數..............................................209
20.2 Executor和ExecutorService ...............210
20.3 Callable和Future ................................213
20.4 鎖..........................................................216
20.5 本章小結..............................................217
第 21章 國際化..............................................218
21.1 本地化..................................................218
21.2 國際化應用程式..................................219
21.2.1 將文本性部分隔離到屬性檔案中.......................................220
21.2.2 使用ResourceBundle讀取屬性檔案 .................................. 221
21.3 一個國際化的Swing應用程式.......... 221
21.4 本章小結............................................. 223
第 22章 網路.................................................. 224
22.1 網路概覽............................................. 224
22.2
超文本傳輸協定(HTTP)................ 224
22.2.1
HTTP請求............................... 225
22.2.2 HTTP回響............................... 225
22.3 java.net.URL........................................ 226
22.3.1 解析URL ................................. 227
22.3.2 讀取Web資源......................... 227
22.4 java.net.URLConnection...................... 228
22.4.1 讀Web資源............................. 229
22.4.2 寫到一個
Web伺服器............. 230
22.5 java.net.Socket ..................................... 231
22.6 java.net.ServerSocket........................... 232
22.7 一個Web伺服器應用程式................ 233
22.7.1 HttpServer類............................ 233
22.7.2 Request類................................. 236
22.7.3 Response類.............................. 238
22.7.4 運行應用程式........................... 239
22.8 本章小結............................................. 240
第 23章 Android簡介................................ 241
23.1 概覽..................................................... 241
23.2 應用程式開發簡介.............................. 241
23.3 Android版本....................................... 243
23.4 線上資源............................................. 244
23.5 應該使用哪個版本的Java.................. 244
第 24章 初識Android................................ 245
24.1 下載和安裝Android Studio ................ 245
24.1.1 在Windows系統上安裝.......... 245
24.1.2 在Mac OS X系統上安裝........ 249
24.1.3 在Linux系統上安裝............... 250
24.2 創建應用程式..................................... 250
24.3 在模擬器上運行應用程式.................. 253
24.4 應用程式結構..................................... 254
24.4.1 Android清單............................ 255
24.4.2 apk檔案.................................... 256
24.5 調試應用程式..................................... 256
24.5.1 日誌.......................................... 256
24.5.2 設定斷點.................................. 257
24.6 Android SDK Manager.........................258
24.7 創建一個Android虛擬設備...............258
24.8 在物理設備上運行應用程式..............261
24.9 在Android Studio中打開一個項目....261
24.10 使用Java 8.........................................262
24.11 刪除支持的庫....................................262
24.12 本章小結............................................263
第 25章 活動..................................................264
25.1 活動的生命周期..................................264
25.2 ActivityDemo示例..............................265
25.3 修改應用程式圖示..............................267
25.4 使用Android資源...............................268
25.5 啟動另一個活動..................................268
25.6 活動相關的意圖..................................271
25.7 本章小結..............................................273
第 26章 UI組件............................................274
26.1 概覽......................................................274
26.2 使用Android Studio UI工具..............274
26.3 使用基本組件......................................275
26.4 Toast .....................................................278
26.5 通知......................................................280
26.6 本章小結..............................................284
第 27章 布局..................................................285
27.1 概覽......................................................285
27.2 LinearLayout ........................................285
27.3 RelativeLayout .....................................287
27.4 FrameLayout ........................................290
27.5 TableLayout ..........................................291
27.6 GridLayout ...........................................292
27.7 通過編程來創建布局..........................293
27.8 本章小結..............................................294
第 28章 監聽器..............................................295
28.1 概覽......................................................295
28.2 使用onClick屬性...............................296
28.3 實現一個監聽器..................................299
28.4 本章小結..............................................303
第 29章 操作欄..............................................304
29.1 概覽......................................................304
29.2 添加操作項......................................... 305
29.3 添加下拉式導航................................. 308
29.4 回退一步............................................. 311
29.5 本章小結............................................. 311
第30章 選單.................................................. 312
30.1 概覽..................................................... 312
30.2 選單檔案............................................. 312
30.3 選項選單............................................. 313
30.4
上下文選單......................................... 315
30.5
彈出式選單......................................... 318
30.6 本章小結............................................. 320
第31章 ListView......................................... 321
31.1 概覽..................................................... 321
31.2 創建一個ListAdapter ......................... 322
31.3 使用一個ListView.............................. 323
31.4 擴展ListActivity並編寫一個定製的 適配器................................................. 325
31.5 樣式化選取的項................................. 328
31.6 本章小結............................................. 330
第32章 GridView ....................................... 331
32.1 概覽..................................................... 331
32.2 使用GridView..................................... 331
32.3 本章小結............................................. 335
第33章 樣式和主題.................................... 336
33.1 概覽..................................................... 336
33.2 使用樣式............................................. 337
33.3 使用主題............................................. 339
33.4 本章小結............................................. 340
第34章 點陣圖處理........................................ 341
34.1 概覽..................................................... 341
34.2 點陣圖處理............................................. 342
34.3 本章小結............................................. 346
第35章 圖形和定製視圖........................... 347
35.1 概覽..................................................... 347
35.2
硬體加速............................................. 347
35.3 創建一個定製視圖.............................. 348
35.4 繪製基本形狀..................................... 348
35.5 繪製文本............................................. 349
35.6 透明度................................................. 349
35.7 Shader...................................................350
35.8 裁剪......................................................350
35.9 使用路徑..............................................351
35.10 CanvasDemo應用程式......................352
35.11 本章小結............................................355
第36章 片段..................................................356
36.1 片段的生命周期..................................356
36.2 片段管理..............................................358
36.3 使用片段..............................................358
36.4 擴展ListFragment並使用FragmentManager ................................363
36.5 本章小結..............................................366
第37章 多面板布局....................................367
37.1 概覽......................................................367
37.2 多面板示例..........................................369
37.2.1 布局和活動...............................371
37.2.2 片段類.......................................373
37.2.3 運行應用程式...........................377
37.3 本章小結..............................................377
第38章 動畫..................................................378
38.1 概覽......................................................378
38.2 屬性動畫..............................................378
38.2.1 Animator....................................378
38.2.2 ValueAnimator...........................378
38.2.3 ObjectAnimator .........................379
38.2.4 AnimatorSet...............................379
38.3 動畫項目..............................................380
38.4 本章小結..............................................383
第39章 偏好..................................................384
39.1 SharedPreference..................................384
39.2 Preference API......................................384
39.3 使用Preference....................................385
39.4 本章小結..............................................389
第40章 操作檔案.........................................390
40.1 概覽......................................................390
40.1.1 內部存儲...................................390
40.1.2 外部存儲...................................391
40.2 創建一個Notes應用程式...................392
40.3 訪問公共存儲......................................397
40.4 本章小結..............................................400
第41章 運算元據庫.................................... 401
41.1 概覽..................................................... 401
41.2 Database API ....................................... 401
41.2.1 SQLiteOpenHelper類............... 401
41.2.2 SQLiteDatabase類................... 402
41.2.3 Cursor接口............................... 403
41.3 示例..................................................... 403
41.4 本章小結............................................. 410
第42章 獲取圖片........................................ 411
42.1 概覽..................................................... 411
42.2 使用相機............................................. 412
42.3 Camera API.......................................... 415
42.3.1 管理相機.................................. 415
42.3.2 管理SurfaceHolder .................. 416
42.4 使用Camera API................................. 417
42.5 本章小結............................................. 421
第43章 製作視頻........................................ 422
43.1 使用內建意圖..................................... 422
43.2 MediaRecorder..................................... 426
43.3 使用MediaRecorder............................ 427
43.4 本章小結............................................. 430
第44章 聲音錄製........................................ 431
44.1 MediaRecorder類................................ 431
44.2 示例..................................................... 431
44.3 本章小結............................................. 435
第45章 處理Handler................................ 436
45.1 概覽..................................................... 436
45.2 示例..................................................... 436
45.3 本章小結............................................. 439
第46章 異步工具........................................ 440
46.1 概覽..................................................... 440
46.2 示例..................................................... 440
46.3 本章小結............................................. 444
第47章 服務.................................................. 445
47.1 概覽..................................................... 445
47.2 服務API.............................................. 445
47.3 聲明服務............................................. 446
47.4 服務示例............................................. 446
47.5 本章小結..............................................451
第48章 廣播接收器....................................452
48.1 概覽......................................................452
48.2 基於時鐘的廣播接收器......................452
48.3 取消通知..............................................454
48.4 本章小結..............................................457
第49章 鬧鐘服務.........................................458
49.1 概覽......................................................458
49.2 示例......................................................459
49.3 本章小結..............................................463
第50章 內容提供者....................................464
50.1 概覽......................................................464
50.2 ContentProvider類...............................465
50.2.1 query方法.................................465
50.2.2 insert方法.................................465
50.2.3 update方法...............................465
50.2.4 delete方法.................................466
50.3 創建一個內容提供者..........................466
50.4 消費內容提供者..................................475
50.5 本章小結..............................................476
附錄A javac ....................................................477
A.1 選項.......................................................477
A.1.1 標準選項....................................477
A.1.2 非標準選項................................479
A.1.3 -J選項........................................480
A.2
命令行參數檔案...................................480
附錄B java ......................................................481
B.1 選項.......................................................481
B.1.1 標準選項.................................... 481
B.1.2 非標準選項................................ 483
附錄C jar ........................................................ 485
C.1 語法....................................................... 485
C.2 選項....................................................... 486
C.3 示例....................................................... 487
C.3.1 創建............................................ 487
C.3.2 更新............................................ 487
C.3.3 列出............................................ 487
C.3.4 提取............................................ 487
C.3.5 索引............................................ 487
C.4 設定應用程式入口點........................... 488
附錄D NetBeans .......................................... 489
D.1 下載和安裝.......................................... 489
D.2 創建一個項目....................................... 489
D.3 創建一個類.......................................... 491
D.4 運行一個Java類................................. 491
D.5 添加庫.................................................. 491
D.6 調試代碼.............................................. 492
附錄E Eclipse ............................................... 493
E.1 下載和安裝........................................... 493
E.2 添加一個JRE ....................................... 494
E.3 創建一個Java項目.............................. 495
E.4 創建一個類........................................... 496
E.5 運行一個Java類.................................. 497
E.6 添加庫................................................... 497
E.7 調試代碼............................................... 497
E.8 有用的捷徑................................... 498