産品特色
編輯推薦
適讀人群 :本書適用於所有Java編程人員,包括Java初學者及資深Java開發人員。本書還可作為高校的Java教材,以及企業Java培訓教材,也可作為Oracle公司的OCJP認證的輔導教材。 本書是知名IT技術女作傢孫衛琴老師傾注六年心血打造的業界經典10年暢銷圖書《Java麵嚮對象編程》的升級版。以行雲流水般的語言詮釋Java編程藝術。基於*新Java技術,理論緊密結閤實際。
內容簡介
本書采用由淺入深、與實際應用緊密結閤的方式,利用大量經典實用的實例,詳細講解Java麵嚮對象的編程思想、編程語法和設計模式,介紹常見Java類庫的用法,總結優化Java編程的各種寶貴經驗,深入闡述Java虛擬機執行Java程序的原理。本書的實例都基於*新的JDK8版本。本書的*大特色是以6條主綫貫穿書:麵嚮對象編程思想、Java語言的語法、Java虛擬機執行Java程序的原理、在實際項目中的運用、設計模式和性能優化技巧。另外,本書還貫穿瞭Oracle公司的OCJP(Oracle Certified Java Programmer)認證的考試要點。
作者簡介
孫衛琴,知名IT作傢和Java專傢,畢業於上海交通大學,隨後主要從事基於Java的軟件開發工作,在此其間還從事Java方麵的培訓和谘詢工作。2002年開始Java技術領域的創作,文風清晰嚴謹、深入淺齣,深受讀者歡迎,其多部作品的銷量在同類書籍中一度位居全國榜首。代錶著作有:
<>
<>
<>
<>
<<精通Hibernate: Java對象持久化技術詳解>>
<<精通Struts: 基於MVC的Java Web設計與開發>>
<>
<>
內頁插圖
目錄
第1章麵嚮對象開發方法概述 1
1.1 結構化的軟件開發方法簡介 3
1.2 麵嚮對象的軟件開發方法簡介 6
1.2.1 對象模型 6
1.2.2 UML:可視化建模語言 7
1.2.3 Rational Rose:可視化建模
工具 7
1.3 麵嚮對象開發中的核心思想
和概念 8
1.3.1 問題領域、對象、屬性、狀態、行為、方法、實現 8
1.3.2 類、類型 10
1.3.3 消息、服務 12
1.3.4 接口 13
1.3.5 封裝、透明 14
1.3.6 抽象 18
1.3.7 繼承、擴展、覆蓋 20
1.3.8 組閤 21
1.3.9 多態、動態綁定 24
1.4 UML語言簡介 26
1.4.1 用例圖 27
1.4.2 類框圖 28
1.4.3 時序圖 29
1.4.4 協作圖 30
1.4.5 狀態轉換圖 30
1.4.6 組件圖 31
1.4.7 部署圖 32
1.5 類之間的關係 32
1.5.1 關聯(Association) 33
1.5.2 依賴(Dependency) 34
1.5.3 聚集(Aggregation) 35
1.5.4 泛化(Generalization) 36
1.5.5 實現(Realization) 36
1.5.6 區分依賴、關聯和聚集關係 36
1.6 實現Panel係統 39
1.6.1 擴展Panel係統 42
1.6.2 用配置文件進一步提高Panel
係統的可維護性 43
1.6.3 運行Panel係統 45
1.7 小結 45
1.8 思考題 46
第2章第一個Java應用 47
2.1 創建Java源文件 47
2.1.1 Java源文件結構 49
2.1.2 包聲明語句 49
2.1.3 包引入語句 51
2.1.4 方法的聲明 53
2.1.5 程序入口main()方法的聲明 54
2.1.6 給main()方法傳遞參數 55
2.1.7 注釋語句 55
2.1.8 關鍵字 56
2.1.9 標識符 56
2.1.10 編程規範 57
2.2 用JDK管理Java應用 57
2.2.1 JDK簡介以及安裝方法 58
2.2.2 編譯Java源文件 60
2.2.3 運行Java程序 62
2.2.4 給Java應用打包 65
2.3 使用和創建JavaDoc文檔 66
2.3.1 JavaDoc標記 68
2.3.2 javadoc命令的用法 73
2.4 Java虛擬機運行Java程序的
基本原理 75
2.5 小結 77
2.6 思考題 78
第3章數據類型和變量 81
3.1 基本數據類型 82
3.1.1 boolean類型 82
3.1.2 byte、short、int和long
類型 83
3.1.3 char類型與字符編碼 85
3.1.4 float和double類型 87
3.2 引用類型 91
3.2.1 基本類型與引用類型的區彆 92
3.2.2 用new關鍵字創建對象 94
3.3 變量的作用域 95
3.3.1 實例變量和靜態變量的
生命周期 97
3.3.2 局部變量的生命周期 100
3.3.3 成員變量和局部變量同名 101
3.3.4 將局部變量的作用域
最小化 102
3.4 對象的默認引用:this 103
3.5 參數傳遞 105
3.6 變量的初始化以及默認值 107
3.6.1 成員變量的初始化 107
3.6.2 局部變量的初始化 108
3.7 直接數 109
3.7.1 直接數的類型 110
3.7.2 直接數的賦值 111
3.8 小結 112
3.9 思考題 113
第4章操作符 115
4.1 操作符簡介 115
4.2 整型操作符 116
4.2.1 一元整型操作符 117
4.2.2 二元整型操作符 118
4.3 浮點型操作符 123
4.4 比較操作符和邏輯操作符 124
4.5 特殊操作符“?:” 127
4.6 字符串連接操作符“+” 127
4.7 操作符“==”與對象的
equals()方法 129
4.7.1 操作符“==” 129
4.7.2 對象的equals()方法 130
4.8 instanceof操作符 133
4.9 變量的賦值和類型轉換 135
4.9.1 基本數據類型轉換 136
4.9.2 引用類型的類型轉換 139
4.10 小結 139
4.11 思考題 142
第5章流程控製 145
5.1 分支語句 146
5.1.1 if else語句 146
5.1.2 switch語句 150
5.2 循環語句 154
5.2.1 while語句 154
5.2.2 do while語句 156
5.2.3 for語句 158
5.2.4 foreach語句 161
5.2.5 多重循環 162
5.3 流程跳轉語句 162
5.4 綜閤例子:八皇後問題 165
5.5 小結 168
5.6 思考題 169
第6章繼承 173
6.1 繼承的基本語法 173
6.2 方法重載(Overload) 175
6.3 方法覆蓋(Override) 177
6.4 方法覆蓋與方法重載的
異同 183
6.5 super關鍵字 183
6.6 多態 185
6.7 繼承的利弊和使用原則 189
6.7.1 繼承樹的層次不可太多 190
6.7.2 繼承樹的上層為抽象層 190
6.7.3 繼承關係最大的弱點:
打破封裝 191
6.7.4 精心設計專門用於被繼承
的類 193
6.7.5 區分對象的屬性與繼承 195
6.8 比較組閤與繼承 197
6.8.1 組閤關係的分解過程對應
繼承關係的抽象過程 197
6.8.2 組閤關係的組閤過程對應
繼承關係的擴展過程 200
6.9 小結 203
6.10 思考題 204
第7章 Java語言中的修飾符 209
7.1 訪問控製修飾符 210
7.2 abstract修飾符 212
7.3 final修飾符 214
7.3.1 final類 215
7.3.2 final方法 215
7.3.3 final變量 216
7.4 static修飾符 220
7.4.1 static變量 220
7.4.2 static方法 223
7.4.3 static代碼塊 226
7.4.4 用static進行靜態導入 228
7.5 小結 228
7.6 思考題 230
第8章接口 233
8.1 接口的概念和基本特徵 234
8.2 比較抽象類與接口 237
8.3 與接口相關的設計模式 241
8.3.1 定製服務模式 241
8.3.2 適配器模式 245
8.3.3 默認適配器模式 250
8.3.4 代理模式 251
8.3.5 標識類型模式 256
8.3.6 常量接口模式 257
8.4 小結 258
8.5 思考題 259
第9章異常處理 261
9.1 Java異常處理機製概述 262
9.1.1 Java異常處理機製的優點 262
9.1.2 Java虛擬機的方法調用棧 264
9.1.3 異常處理對性能的影響 267
9.2 運用Java異常處理機製 267
9.2.1 try-catch語句:捕獲異常 267
9.2.2 finally語句:任何情況下
必須執行的代碼 268
9.2.3 throws子句:聲明可能會
齣現的異常 270
9.2.4 throw語句:拋齣異常 271
9.2.5 異常處理語句的語法規則 271
9.2.6 異常流程的運行過程 274
9.2.7 跟蹤丟失的異常 278
9.3 Java異常類 280
9.3.1 運行時異常 282
9.3.2 受檢查異常
(Checked Exception) 282
9.3.3 區分運行時異常和受
檢查異常 283
9.4 用戶定義異常 285
9.4.1 異常轉譯和異常鏈 285
9.4.2 處理多樣化異常 288
9.5 異常處理原則 289
9.5.1 異常隻能用於非正常情況 290
9.5.2 為異常提供說明文檔 290
9.5.3 盡可能地避免異常 291
9.5.4 保持異常的原子性 292
9.5.5 避免過於龐大的try代碼塊 294
9.5.6 在catch子句中指定具體的
異常類型 294
9.5.7 不要在catch代碼塊中忽略
被捕獲的異常 294
9.6 記錄日誌 295
9.6.1 創建Logger對象及設置
日誌級彆 296
9.6.2 生成日誌 297
9.6.3 把日誌輸齣到文件 297
9.6.4 設置日誌的輸齣格式 298
9.7 使用斷言 299
9.8 小結 300
9.9 思考題 301
第10章類的生命周期 305
10.1 Java虛擬機及程序的
生命周期 305
10.2 類的加載、連接和初始化 305
10.2.1 類的加載 306
10.2.2 類的驗證 307
10.2.3 類的準備 307
10.2.4 類的解析 308
10.2.5 類的初始化 308
10.2.6 類的初始化的時機 310
10.3 類加載器 313
10.3.1 類加載的父親委托機製 315
10.3.2 創建用戶自定義的類
加載器 317
10.3.3 URLClassLoader類 323
10.4 類的卸載 324
10.5 小結 325
10.6 思考題 326
第11章對象的生命周期 327
11.1 創建對象的方式 327
11.2 構造方法 330
11.2.1 重載構造方法 331
11.2.2 默認構造方法 332
11.2.3 子類調用父類的構造方法 333
11.2.4 構造方法的作用域 337
11.2.5 構造方法的訪問級彆 337
11.3 靜態工廠方法 338
11.3.1 單例類 340
11.3.2 枚舉類 342
11.3.3 不可變(immutable)類與
可變類 344
11.3.4 具有實例緩存的
不可變類 348
11.3.5 鬆耦閤的係統接口 350
11.4 垃圾迴收 351
11.4.1 對象的可觸及性 352
11.4.2 垃圾迴收的時間 354
11.4.3 對象的finalize()方法簡介 354
11.4.4 對象的finalize()方法的
特點 355
11.4.5 比較finalize()方法和finally
代碼塊 357
11.5 清除過期的對象引用 358
11.6 對象的強、軟、弱和
虛引用 360
11.7 小結 366
11.8 思考題 367
第12章內部類 371
12.1 內部類的基本語法 371
12.1.1 實例內部類 373
12.1.2 靜態內部類 376
12.1.3 局部內部類 377
12.2 內部類的繼承 379
12.3 子類與父類中的內部類
同名 380
12.4 匿名類 381
12.5 內部接口以及接口中的
內部類 384
12.6 內部類的用途 385
12.6.1 封裝類型 385
12.6.2 直接訪問外部類的成員 385
12.6.3 迴調 386
12.7 內部類的類文件 388
12.8 小結 389
12.9 思考題 389
第13章多綫程 393
13.1 Java綫程的運行機製 393
13.2 綫程的創建和啓動 395
13.2.1 擴展java.lang.Thread類 395
13.2.2 實現Runnable接口 400
13.3 綫程的狀態轉換 402
13.3.1 新建狀態 402
13.3.2 就緒狀態 402
13.3.3 運行狀態 402
13.3.4 阻塞狀態 403
13.3.5 死亡狀態 404
13.4 綫程調度 405
13.4.1 調整各個綫程的優先級 406
13.4.2 綫程睡眠:Thread.sleep()
方法 408
13.4.3 綫程讓步:
Thead.yield()方法 409
13.4.4 等待其他綫程結束:join() 410
13.5 獲得當前綫程對象的引用 411
13.6 後颱綫程 412
13.7 定時器 413
13.8 綫程的同步 415
13.8.1 同步代碼塊 418
13.8.2 綫程同步的特徵 422
13.8.3 同步與並發 425
13.8.4 綫程安全的類 426
13.8.5 釋放對象的鎖 427
13.8.6 死鎖 429
13.9 綫程通信 430
13.10 中斷阻塞 435
13.11 綫程控製 436
13.11.1 被廢棄的suspend()和
resume()方法 437
13.11.2 被廢棄的stop()方法 438
13.11.3 以編程的方式控製綫程 438
13.12 綫程組 440
13.13 處理綫程未捕獲的異常 441
13.14 ThreadLocal類 443
13.15 concurrent並發包 445
13.15.1 用於綫程同步的Lock
外部鎖 446
13.15.2 用於綫程通信的Condition
條件接口 447
13.15.3 支持異步計算的Callable
接口和Future接口 450
13.15.4 通過綫程池來高效管理
多個綫程 452
13.15.5 BlockingQueue阻塞隊列 454
13.16 小結 457
13.17 思考題 458
第14章數組 461
14.1 數組變量的聲明 461
14.2 創建數組對象 462
14.3 訪問數組的元素和長度 463
14.4 數組的初始化 465
14.5 多維數組以及不規則數組 465
14.6 調用數組對象的方法 467
14.7 把數組作為方法參數或
返迴值 467
1
Java麵嚮對象編程(第2版) 下載 mobi epub pdf txt 電子書 格式