內容簡介
本書是java 2技術權威指南,全面覆蓋java 2技術的高級主題,包括:多執行緒、集合框架、網路api、資料庫編程、分散式對象等,深入探究了swing、java 2d api、javabean、java安全模式、xml、注釋、元數據等主題,同時涉及本地方法、國際化以及jdk 5.0的內容。本書適合軟體開發人員、高等院校學生和教師參考。.
本書包括java 2平台標準版(j2se)的高級用戶界面編程和企業特性。與卷Ⅰ(包括最重要的語言和類庫特性)一樣,本書針對j2se 5.0做了更新和修訂。所有的示例程式都已進行更新,而且經過精心的構思,從而可以闡明針對職業開發者所碰到的實際問題類型的實戰性解決方案。
作者簡介
Cay S.Horstmann是聖何塞州立大學計算機科學系教授。他曾經是Preview Systems公司的副總裁和首席技術官,曾任許多大型公司、大學和組織的C++、Java與網際網路編程顧問。.
Gary Comell曾經撰寫或與人合著過20多本計算機暢銷書。他是Brown大學的博士,在IBM的Watson實驗室做過訪問科學家,曾任康乃狄克大學的教授。
目錄
譯者序
前言
第1章 多執行緒 . 1
1.1 什麼是執行緒 2
1.2 中斷執行緒 11
1.3 執行緒狀態 13
1.3.1 新生執行緒 13
1.3.2 可運行執行緒 13
1.3.3 被阻塞執行緒 14
1.3.4 死執行緒 15
1.4 執行緒屬性 15
1.4.1 執行緒優先權 15
1.4.2 守護執行緒 16
1.4.3 執行緒組 16
1.4.4 未捕獲異常處理器 18
1.5 同步 19
1.5.1 競爭條件的一個例子 19
1.5.2 詳解競爭條件 22
1.5.3 鎖對象 23
1.5.4 條件對象 25
.1.5.5 synchronized關鍵字 30
1.5.6 同步塊 35
1.5.7 volatile域 35
1.5.8 死鎖 36
1.5.9 公平 38
1.5.10 鎖測試和逾時 38
1.5.11 讀/寫鎖 39
1.5.12 為什麼要棄用stop和suspend方法 40
1.6 阻塞佇列 41
1.7 執行緒安全的集合 46
1.7.1 高效佇列和散列表 46
1.7.2 寫數組的拷貝 47
1.7.3 舊的執行緒安全的集合 47
1.8 callable和future 48
1.9 執行器 51
1.9.1 執行緒池 51
1.9.2 預定執行 55
1.9.3 控制執行緒組 55
1.10 同步器 56
1.10.1 障柵 57
1.10.2 倒計時門栓 57
1.10.3 交換器 57
1.10.4 同步佇列 58
1.10.5 信號量 58
1.11 執行緒和swing 63
1.11.1 “單一執行緒”規則 64
1.11.2 swing工作器 68
第2章 集合 74
2.1 集合接口 74
2.1.1 將集合接口和實現分離 74
2.1.2 java類庫中的集合接口和疊代器接口 76
2.2 具體的集合 80
2.2.1 鍊表 81
2.2.2 數組列表 88
2.2.3 散列集 88
2.2.4 樹集 90
2.2.5 優先權佇列 95
2.2.6 映射表 96
2.2.7 專用的集和映射表類 99
2.3 集合框架 103
2.3.1 視圖和包裝器 105
2.3.2 批操作 110
2.3.3 集合與數組的轉換 110
2.3.4 框架的擴展 111
2.4 算法 113
2.4.1 排序與混排 114
2.4.2 二分查找 116
2.4.3 簡單算法 117
2.4.4 編寫你自己的算法 118
2.5 遺留下來的集合 119
2.5.1 hashtable類 119
2.5.2 枚舉 120
2.5.3 屬性集 120
2.5.4 棧 121
2.5.5 位集 121
第3章 網路 125
3.1 連線到伺服器 125
3.2 實現伺服器 128
3.3 傳送e-mail 134
3.4 建立url連線 137
3.4.1 url和uri 137
3.4.2 使用urlconnection獲取信息 139
3.4.3 提交表單數據 146
3.5 高級套接字編程 153
3.5.1 套接字逾時 153
3.5.2 可中斷套接字 154
3.5.3 半關閉 158
3.5.4 網際網路地址 158
第4章 資料庫編程 162
4.1 jdbc的設計 162
4.1.1 jdbc驅動程式類型 163
4.1.2 jdbc的典型用法 164
4.2 結構化查詢語言 165
4.3 安裝jdbc 168
4.4 jdbc編程的基本概念 169
4.4.1 資料庫url 169
4.4.2 建立連線 169
4.4.3 執行sql命令 173
4.4.4 高級sql類型 175
4.4.5 管理連線、語句和結果集 176
4.4.6 組裝資料庫 177
4.5 執行查詢操作 180
4.6 可滾動和可更新的結果集 187
4.6.1 可滾動的結果集 188
4.6.2 可更新的結果集 190
4.7 元數據 193
4.8 行集 200
4.9 事務 208
4.9.1 保存點 209
4.9.2 批量更新 209
4.10 高級連線管理 211
4.11 ldap概述 212
4.11.1 配置ldap伺服器 213
4.11.2 訪問ldap目錄信息 215
第5章 分散式對象 225
5.1 客戶與伺服器的角色 225
5.2 遠程方法調用 227
5.2.1 存根與參數編組 227
5.2.2 動態類載入 229
5.3 配置遠程方法調用 229
5.3.1 接口與實現 229
5.3.2 存根類的生成 231
5.3.3 定位伺服器對象 231
5.3.4 客戶端 235
5.3.5 部署的準備工作 239
5.3.6 部署程式 241
5.4 遠程方法中的參數傳遞 242
5.4.1 傳遞非遠程對象 242
5.4.2 傳遞遠程對象 251
5.4.3 遠程對象與equals和hashcode方法 253
5.4.4 克隆遠程對象 253
5.5 伺服器對象激活 254
5.6 java idl與corba 258
5.6.1 接口定義語言 259
5.6.2 一個corba的例子 262
5.6.3 實現corba伺服器 269
5.7 遠程方法調用與soap 274
第6章 高級swing 279
6.1 列表 279
6.1.1 jlist構件 279
6.1.2 列表模式 284
6.1.3 插入和移除值 288
6.1.4 值的繪製 289
6.2 樹 293
6.2.1 簡單的樹 294
6.2.2 結點枚舉 305
6.2.3 繪製結點 306
6.2.4 監聽樹事件 312
6.2.5 定製樹模型 316
6.3 表格 323
6.3.1 簡單表格 323
6.3.2 表格模型 326
6.3.3 排序過濾器 333
6.3.4 單元格的繪製和編輯 338
6.3.5 對行和列的操作 349
6.3.6 選擇行、列和單元格 350
6.4 樣式文本構件 356
6.5 進度指示器 361
6.5.1 進度條 361
6.5.2 進度監視器 365
6.5.3 監視輸入流的進度 369
6.6 構件組織器 373
6.6.1 分割面板 373
6.6.2 選項卡面板 377
6.6.3 桌面面板和內部框體 381
6.6.4 級聯與平鋪 383
6.6.5 否決屬性設定 385
第7章 高級awt .. 396
7.1 繪圖操作流程 396
7.2 形狀 398
7.3 區域 409
7.4 筆劃 412
7.5 著色 418
7.6 坐標變換 423
7.7 剪下 430
7.8 透明與組合 433
7.9 繪圖提示 440
7.10 圖像的讀取器和寫入器 444
7.10.1 獲得圖像檔案類型的讀取器和寫入器 445
7.10.2 讀取和寫入帶有多個圖像的檔案 446
7.11 圖像處理 454
7.11.1 訪問圖像數據 454
7.11.2 圖像過濾 460
7.12 列印 467
7.12.1 圖形列印 467
7.12.2 列印多頁檔案 474
7.12.3 列印預覽 475
7.12.4 列印服務程式 483
7.12.5 流列印服務程式 488
7.12.6 列印屬性 492
7.13 剪貼簿 498
7.13.1 數據傳遞的類和接口 498
7.13.2 傳遞文本 499
7.13.3 可傳遞的接口和數據風格 502
7.13.4 構建一個可傳遞的圖像 504
7.13.5 使用本地剪貼簿來傳遞對象引用 509
7.13.6 通過系統剪貼簿傳遞java對象 514
7.14 拖放操作 517
7.14.1 放置目標 519
7.14.2 拖曳源 526
7.14.3 swing對數據傳遞的支持 531
第8章 javabean構件 534
8.1 為何是bean 534
8.2 編寫bean的過程 535
8.3 使用bean構造應用程式 537
8.3.1 將bean打包成jar檔案 538
8.3.2 在開發環境中組合bean 539
8.4 bean屬性與事件的命名模式 542
8.5 bean屬性的類型 544
8.5.1 簡單屬性 545
8.5.2 索引屬性 545
8.5.3 綁定屬性 546
8.5.4 約束屬性 547
8.6 beaninfo類 552
8.7 屬性編輯器 556
8.8 定製器 573
8.9 javabean持久化 580
8.9.1 javabean持久化可用於任何數據 583
8.9.2 一個javabean持久化的完整示例 588
第9章 安全 599
9.1 類載入器 599
9.1.1 將類載入器作為名字空間 601
9.1.2 編寫你自己的類載入器 601
9.2 位元組碼校驗 605
9.3 安全管理器與訪問許可權 609
9.3.1 java2平台安全性 610
9.3.2 安全策略檔案 613
9.3.3 定製許可權 619
9.3.4 實現許可權類 619
9.3.5 定製安全管理器 624
9.3.6 用戶認證 630
9.3.7 jaas登錄模組 634
9.4 數字簽名 641
9.4.1 訊息摘要 642
9.4.2 訊息簽名 646
9.4.3 訊息認證 652
9.4.4 x.509證書格式 654
9.4.5 證書的生成 654
9.4.6 證書籤名 657
9.5 代碼簽名 663
9.5.1 jar檔案簽名 663
9.5.2 軟體開發者證書 666
9.6 加密 667
9.6.1 對稱密碼 667
9.6.2 密碼流 672
9.6.3 公共密鑰密碼 673
第10章 國際化 678
10.1 locale 678
10.2 數字格式 682
10.3 日期和時間 687
10.4 排序 692
10.5 訊息格式化 698
10.6 文本檔案和字元集 701
10.7 資源包 702
10.7.1 定位資源包 702
10.7.2 屬性檔案 703
10.7.3 包類 704
10.8 一個完整的例子 705
第11章 本地方法 717
11.1 用java程式語言調用c函式 718
11.2 數值參數與返回值 722
11.3 字元串參數 723
11.4 訪問域 727
11.4.1 訪問實例域 727
11.4.2 訪問靜態域 731
11.5 編碼簽名 731
11.6 調用java方法 732
11.6.1 非靜態方法 732
11.6.2 靜態方法 733
11.6.3 構造器 734
11.6.4 替代方法調用 734
11.7 訪問數組元素 738
11.8 錯誤處理 740
11.9 使用調用api 744
11.10 完整的示例:訪問windows註冊表 747
11.10.1 windows註冊表概述 747
11.10.2 訪問註冊表的java平台接口 748
11.10.3 以本地方法方式實現註冊表訪問函式 748
第12章 xml 760
12.1 xml概述 760
12.2 解析xml文檔 764
12.3 驗證xml文檔 773
12.3.1 文檔類型定義 774
12.3.2 xml schema 779
12.3.3 實用示例 781
12.4 使用xpath來定位信息 792
12.5 使用名字空間 797
12.6 使用sax解析器 799
12.7 生成xml文檔 802
12.8 xsl轉換 809
第13章 注釋 817
13.1 對程式添加元數據 817
13.2 一個示例:注釋事件處理器 818
13.3 注釋語法 822
13.4 標準注釋 825
13.4.1 正規注釋 826
13.4.2 元注釋 826
13.5 用於源碼級注釋處理的apt工具 828
13.6 位元組碼工程 ... 833