注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)JAVA及其相關(guān)Java平臺(tái)組件開發(fā)

Java平臺(tái)組件開發(fā)

Java平臺(tái)組件開發(fā)

定 價(jià):¥32.00

作 者: (美)Stuart Dabbs Halloway著;韓宏志譯
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: JAVA語言

ISBN: 9787302089346 出版時(shí)間: 2004-09-01 包裝: 簡裝本
開本: 26cm 頁數(shù): 233 字?jǐn)?shù):  

內(nèi)容簡介

  Java不僅是一種面向?qū)ο笳Z言,也是一個(gè)面向組件的平臺(tái)。作為一個(gè)成功的平臺(tái),Java提供諸多強(qiáng)大的功能。本書詳細(xì)討論了使用Java平臺(tái)開發(fā)組件的優(yōu)缺點(diǎn),分析Java平臺(tái)的一些核心功能,如類加載、反射、串行化、與本機(jī)程序的交互操作和代碼生成等技術(shù)。通過本書的學(xué)習(xí),您不僅可了解到如何有效地開發(fā)Java程序,同時(shí)也可了解到如何有效地部署Java組件,以充分利用Java提供的所有特性,創(chuàng)建靈活的、可重用的二進(jìn)制組件,定義在運(yùn)行時(shí)可安全可靠地連接二進(jìn)制組件所需的服務(wù)。本書主要內(nèi)容:·使用和維護(hù)類加載器·通過反射創(chuàng)建動(dòng)態(tài)和通用服務(wù)·控制對(duì)象的串行化表示形式·加載和使用本機(jī)代碼組件·擴(kuò)充Java類格式以添加自定義服務(wù)·通過代碼生成機(jī)制實(shí)現(xiàn)自動(dòng)開發(fā)本書重點(diǎn)強(qiáng)調(diào)對(duì)Java程序的部署,以便于讀者充分利用Java一些強(qiáng)大但尚未推廣開的重要特性。本書前言本書詳細(xì)討論了Java平臺(tái)面向組件的特性,分析類加載、反射、串行化、本機(jī)交互操作及代碼生成等技術(shù)。本書對(duì)“組件”的定義獨(dú)特新穎:組件是一個(gè)獨(dú)立的生產(chǎn)和部署單元,可與其他組件結(jié)合,以組裝應(yīng)用程序。對(duì)象和組件是不同的概念。對(duì)象表示問題域的實(shí)體,而組件是被安裝解決方案的原子成分。但對(duì)象與組件互為補(bǔ)充,正確的設(shè)計(jì)應(yīng)兼顧二者。Java是備受開發(fā)者推崇的現(xiàn)代開發(fā)平臺(tái),提供了創(chuàng)建類和組件所需要的基礎(chǔ)結(jié)構(gòu)。Java提供封裝、繼承和多態(tài)性,以支持面向?qū)ο蟮木幊痰戎匾δ?。Java還提供加載器和各種類型信息,以支持組件。本書將圍繞組件闡述如何有效使用Java的組件基礎(chǔ)結(jié)構(gòu)。Java加載器在運(yùn)行時(shí)定位、加載和連接組件。用Java加載器您可以做如下工作?!癫渴鸺?xì)粒度組件●根據(jù)需要?jiǎng)討B(tài)加載組件●從網(wǎng)絡(luò)上的其他計(jì)算機(jī)加載組件●從自定義存儲(chǔ)庫加載組件●創(chuàng)建存在于多個(gè)虛擬機(jī)的移動(dòng)式代碼代理●導(dǎo)入非Java組件的服務(wù)加載器管理組件間的二進(jìn)制邊界。在分布式應(yīng)用程序和多組件供應(yīng)商環(huán)境中,加載器用于定位和連接所有兼容的組件。類型信息描述一些代碼單元的功能。在某些開發(fā)環(huán)境中,類型信息僅存在于源代碼。而在Java中,類型信息不單純是一種源代碼,還是編譯類的內(nèi)在部分,可在運(yùn)行時(shí)通過編程接口使用。因?yàn)镴ava類型信息從不被“編譯掉”,所以加載器使用它在運(yùn)行時(shí)驗(yàn)證類之間的鏈接。在應(yīng)用程序編程中,類型信息的作用如下。●串行化Java對(duì)象的狀態(tài),以便在另一虛擬機(jī)上重建對(duì)象●在運(yùn)行時(shí)創(chuàng)建動(dòng)態(tài)代理,以提供可用于任何接口的通用服務(wù)●將數(shù)據(jù)轉(zhuǎn)換為另一種表示形式,以與非Java組件交互操作●將方法調(diào)用轉(zhuǎn)換成網(wǎng)絡(luò)消息●在Java和XML之間轉(zhuǎn)換,XML是企業(yè)系統(tǒng)的新通用語言●使用應(yīng)用程序?qū)S迷獢?shù)據(jù)為組件添加注釋通過類型信息,可使原本需要手動(dòng)編碼的任務(wù)自動(dòng)實(shí)現(xiàn)。此外,類型信息還有助于組件與未來平臺(tái)的兼容。讀者對(duì)象為了解Java應(yīng)用程序的整個(gè)生存期,不僅要考慮對(duì)象,還要考慮組件。本書討論作為組件平臺(tái)的Java的核心功能:類加載器,反射,串行化,以及與其他平臺(tái)的交互操作。本書適用于在Java中設(shè)計(jì)、開發(fā)或部署大量應(yīng)用程序的讀者。在閱讀本書前,應(yīng)了解Java語法的基本知識(shí),并具有一些用Java編寫面向?qū)ο蟪绦虻慕?jīng)驗(yàn)。本書并未特別介紹高級(jí)Java技術(shù),如遠(yuǎn)程方法調(diào)用(RemoteMethodInvocation,RMI)、企業(yè)JavaBean(EnterpriseJavaBean,EJB)、JINI、Java服務(wù)器頁(JavaServerPage,JSP)、servlet或JavaBean。但蘊(yùn)涵的主題是這些技術(shù)的重要基礎(chǔ)。通過學(xué)習(xí)本書介紹的組件服務(wù),可以理解這些高級(jí)技術(shù)的構(gòu)建原理,從而有效地加以應(yīng)用。安全性也是組件開發(fā)和部署的一個(gè)重要方面。由于篇幅所限,本書未對(duì)此做過多介紹。要詳細(xì)了解Java平臺(tái)上的安全性,請(qǐng)參見[Gon99](見本書最后的參考書目)。本書內(nèi)容全書分三部分。第1章簡要介紹了組件,第2章到第6章解釋Java平臺(tái)上的加載器和類型信息。第7章顯示這些服務(wù)的更高級(jí)使用。第1章介紹面向組件的編程。不僅在編譯時(shí),而且在部署和運(yùn)行時(shí)建立組件的關(guān)聯(lián)。本章提出組件編程的關(guān)鍵問題,并將這些問題與后續(xù)章節(jié)中討論的Java平臺(tái)服務(wù)聯(lián)系起來。在學(xué)習(xí)本書時(shí),建議您首先閱讀第1章,之后可以按自己安排的順序閱讀其他章節(jié)。第2章討論如何使用類加載器和解決類加載故障。類加載器用于控制代碼加載,并在同一進(jìn)程中創(chuàng)建代碼間的命名空間邊界。通過類加載器,可在運(yùn)行時(shí)運(yùn)態(tài)加載代碼,甚至可以從其他計(jì)算機(jī)加載。類加載器命名空間允許單個(gè)Java虛擬機(jī)中有同一個(gè)類的多個(gè)版本。使用類加載器,可在不關(guān)閉虛擬機(jī)的情況下重新加載更改的類。本章將介紹如何使用類加載器,類加載器委托模型如何創(chuàng)建命名空間,如何解決類加載故障,以及如何有效控制引導(dǎo)類路徑、擴(kuò)展路徑和類路徑。第3章介紹Java類型信息。Java以二進(jìn)制類格式保存類型信息。這意味著,即使在編譯Java程序后,仍可訪問字段名、字段類型和方法簽名。在運(yùn)行時(shí)可通過反射訪問類型信息,可使用類型信息來構(gòu)建能為其他任何對(duì)象添加功能的通用服務(wù)。本章將討論動(dòng)態(tài)調(diào)用、動(dòng)態(tài)代理、包反射和自定義屬性的用法;還將討論反射性能。第4章討論Java串行化如何使用反射。串行化是一個(gè)很好的通用服務(wù)示例。不必預(yù)先了解類格式的任何知識(shí),串行化可以跨越時(shí)間和空間,將代碼和狀態(tài)從一個(gè)虛擬機(jī)移至另一個(gè)虛擬機(jī)。學(xué)習(xí)本章您可以了解到:串行化格式如何嵌入其類型信息樣式,如何自定義表示形式;如何擴(kuò)展默認(rèn)串行化,如何用自定義外部化代碼完全替換,如何調(diào)整串行化,以隨代碼的演變來處理類的多個(gè)版本;如何驗(yàn)證反串行化到應(yīng)用程序的對(duì)象,以及如何用指令注解串行化對(duì)象,以查找正確的類加載器。第5章返回到類加載器主題,討論如何實(shí)現(xiàn)自定義類加載器。盡管標(biāo)準(zhǔn)類加載器在大多數(shù)應(yīng)用程序中占據(jù)主導(dǎo)地位,但自定義類加載器的作用亦不容忽視。通過自定義類加載器,可在加載類時(shí)轉(zhuǎn)換類代碼。這些轉(zhuǎn)換包括解密,添加性能監(jiān)視指令,或甚至在運(yùn)行時(shí)新建類。本章將介紹如何將自定義類加載器綁定到Java安全體系結(jié)構(gòu),如何編寫自定義類加載器,如何編寫可自定義加載類(以及其他任何類型資源)方式的協(xié)議處理程序。第6章介紹Java本機(jī)接口(JavaNativeInterface,JNI)。JNI是控制Java代碼與在其他環(huán)境中編寫的組件之間邊界的基本方式。Java和本機(jī)編程樣式存在較大差異,類加載、類型信息、資源管理、錯(cuò)誤處理和數(shù)組存儲(chǔ)的方式等都存在顯著區(qū)別。Java提供一組低級(jí)別工具,將Java對(duì)象顯示給平臺(tái)本地代碼,和將平臺(tái)本地代碼顯示給Java對(duì)象。本章介紹如何使用JNI應(yīng)用程序編程接口(API)實(shí)現(xiàn)Java和本機(jī)編程樣式之間的轉(zhuǎn)換。JNI存在諸多不足,為此,本書編排了附錄A以介紹更高級(jí)的方法。第7章討論使用Java元數(shù)據(jù)自動(dòng)創(chuàng)建源代碼或字節(jié)碼。生成代碼是一種高性能重用策略,因?yàn)槟挥蒙稍谶\(yùn)行時(shí)需要的準(zhǔn)確代碼路徑。本章首先介紹JSP和EJB,將此作為自動(dòng)生成代碼的已有應(yīng)用程序示例,然后介紹在自己的程序中生成代碼的一些觀點(diǎn)。附錄A返回到交互操作主題。在第7章介紹的代碼生成技術(shù)的基礎(chǔ)上,附錄A介紹如何在Java和另一組件平臺(tái)Win32/COM之間創(chuàng)建交互操作層。本章以Jawin開放源庫為例,闡釋如何為Win32對(duì)象生成Java占位程序,或由Java占位程序生成Win32對(duì)象。示例代碼、Web站點(diǎn)和反饋除非特別聲明,本書所有示例代碼都是開放源代碼,可從Web站點(diǎn)http://staff.Develop.com/halloway/compsvcs下載。除非特別聲明,書中代碼都在Java2SDK1.3版本中經(jīng)過編譯和測試。大多數(shù)代碼也可用于SDK1.2、1.3和1.4版;若出現(xiàn)特例,本書將列出一個(gè)到適當(dāng)SDK版本的特定引用。歡迎您對(duì)本書提出評(píng)論、更正和反饋意見,請(qǐng)將電子郵件發(fā)送到stu@develop.com。

作者簡介

暫缺《Java平臺(tái)組件開發(fā)》作者簡介

圖書目錄

第1章 從對(duì)象到組件
第2章 類加載器體系結(jié)構(gòu)
2.1 組狀應(yīng)用程序
2.2 類加載器結(jié)構(gòu)的目標(biāo)
2.1.1 透明性
2.2.2 可擴(kuò)展性
2.2.3 功能豐富
2.2.4 可配置性
2.2.5 處理命名和版本沖突
2.2.6 安全性
2.3 顯式和隱式類加載
2.3.1 用URLClassloader顯示加載
2.3.2 隱式類加載
2.3.3 引用類型與已引用類
2.3.4 Classloader.loadClass與Class.forName
2.3.5 加載非類資源
2.4 類加載
2.4.1 一致性規(guī)則
2.4.2 委托規(guī)則
2.4.3 可見性規(guī)則
2.4.4 委托用作命名空間
2.4.5 非Singleton模式的靜態(tài)字段
2.4.6 隱式加載隱藏了大多數(shù)細(xì)節(jié)
2.5 熱部署
2.6 卸載類
2.7 引導(dǎo)類路徑\擴(kuò)展路徑和類路徑
2.7.1 類路徑
2.7.2 擴(kuò)展路徑
2.7.3 引導(dǎo)類路徑
2.8 調(diào)試類加載結(jié)構(gòu)
2.8.1 改編應(yīng)用程序
2.8.2 使用verbose:class標(biāo)志
2.8.3 改編內(nèi)核APl
2.9 倒置問題和上下文類加載器
2.10 小結(jié)
2.11 資源
第3章 類型信息和反射
3.1 二進(jìn)制類格式
3.1.1 二進(jìn)制兼容性
3.1.2 二進(jìn)制類元數(shù)據(jù)
3.1.3 從二進(jìn)制類到反射
3.2 反射
3.2.1 反射字段
3.2.2 get和getDeclared的區(qū)別
3.2.3 運(yùn)行時(shí)出現(xiàn)的類型錯(cuò)誤
3.2.4 反射方法
3.3 反射調(diào)用
3.3.1 反射啟動(dòng)器
3.3.2 包裝基本類型
3.3.3 避開語言訪問規(guī)則
3.3.4 反射調(diào)用引發(fā)的異常
3.4 動(dòng)態(tài)代理
3.4.1 用委托代替實(shí)現(xiàn)繼承
3.4.2 動(dòng)態(tài)代理使委托通用化
3.4.3 實(shí)現(xiàn)InvocationHandler'
3.4.4 實(shí)現(xiàn)轉(zhuǎn)發(fā)處理程序
3.4.5 將InvocationHandler用作通用服務(wù)
3.4.6 處理InvocationHandler中的異常
3.4.7 客戶程序或服務(wù)器都可安裝代理
3.4.8 動(dòng)態(tài)代理的優(yōu)點(diǎn)
3.5 反射性能
3.6 包反射
3.6.1 設(shè)置包元數(shù)據(jù)
3.6.2 訪問包元數(shù)據(jù)
3.6.3 封裝包
3.6.4 版本控制機(jī)制的弱點(diǎn)
3.7 自定義元數(shù)據(jù)
3.8 小結(jié)
3.9 資源
第4章 串行化處理機(jī)制
4.1 串行化處理和元數(shù)據(jù)
4.2 串行化基礎(chǔ)知識(shí)
4.2.1 串行化忽略的一些字段
4.2.2 串行化與類構(gòu)造函數(shù)
4.3 使用readObject和writeObject
4.4 將流與類匹配
4.4.1 serialVersionUID
4.4.2 重寫默認(rèn)SUID
4.4.3 兼容的和不兼容的更改
4.5 顯式管理可串化字段
4.5.1 ObjectlnputStream.GetField應(yīng)用提示
4.5.2 編寫器對(duì)格式的處理
4.5.3 重寫類元數(shù)據(jù)
4.5.4 性能問題
4.5.5 自定義類描述符
4.6 停用元數(shù)據(jù)
4.6.1 在defaultWriteObiect后寫入自定義數(shù)據(jù)
4.6.2 可外部化
4.6.3 用writeObiect只寫入原始數(shù)據(jù):錯(cuò)誤做滋
4.7 對(duì)象圖
4.7.1 用Transient關(guān)鍵字縮減圖大小
4.7.2 保存標(biāo)識(shí)
4.7.3 通過reset關(guān)鍵字來利用無用單元收集器
4.8 對(duì)象替換
4.8.1 流控制替換
4.8.2 類控制替換
4.8.3 替換的排序規(guī)則
4.8.4 控制圖排序
4.9 查找類代碼
4.9.1 RMI中的注解
4.9.2 RMIMarshalledObject
4.10 小結(jié)
4.11 資源
第5章 自定義類加載器
5.1 Java2安全性
5.2 自定義類加載器
5.2.1 Java2之前的自定義類加載器
5.2.2 SDKl.2后的類加載
5.2.3 轉(zhuǎn)換類加載器
5.3 協(xié)議處理程序
5.3.1 實(shí)現(xiàn)處理程序
5.3.2 安裝自定義處理程序
5.3.3 加載器和處理程序之間的選擇
5.4 為需要的加載器傳遞安全性
5.5 讀取自定義元數(shù)據(jù)
5.5.1 版本屬性示例
5.5.2 可串行類用作屬性
5.5.3 在類加載時(shí)讀取屬性
5.5.4 調(diào)試支持
5.6 小結(jié)
5.7 資源
第6章 交互操作1:JNI
6.1 交互操作的原因
6.2 本機(jī)代碼的危險(xiǎn)
6.3 查找和加載本機(jī)代碼
6.3.1 名稱映射
6.3.2 類型映射
6.3.3 重載名
6.3.4 加載本機(jī)庫
6.3.5 類加載器和JNI
6.3.6 加載本機(jī)庫的常見錯(cuò)誤
6.3.7 本機(jī)加載釋疑
6.4 從C++調(diào)用Java
6.4.1 最小化往返次數(shù)
6.4.2 性能比較
6.4.3 JNI和反射調(diào)用的區(qū)別
6.5 JNI中的錯(cuò)誤處理
6.5.1 本機(jī)代碼中的故障
6.5.2 處理C++異常
6.5.3 從本機(jī)代碼處理異常
6.5.4 從本機(jī)代碼拋出Java異常
6.6 資源管理
6.6.1 與無用單元收集器的交互
6.6.2 管理本機(jī)資源
6.6.3 管理數(shù)組
6.6.4 管理字符串
6.7 小結(jié)
6.8 資源
第7章 生成式編程
7.1 使用生成式代碼的原因
7.1.1 建立變性模型的面向?qū)ο蟮姆椒?br />7.1.2 按綁定時(shí)間進(jìn)行分析
7.1.3 分離綁定時(shí)間和規(guī)范
7.1.4 選擇規(guī)范語言
7.1.5 重用性的高需求
7.1.6 小型域分析很危險(xiǎn)
7.2 用Java生成代碼的原因
7.2.1 類型信息用作自由規(guī)范文檔
7.2.2 類加載支持靈活綁定模式
7.2.3 易于生成Java源文件
7.2.4 易于生成Java二進(jìn)制類
7.2.5 代碼生成功能有利于提高性能
7.2.6 代碼生成的責(zé)任級(jí)別
7.3 綁定時(shí)間和模式的分類
7.4 RMI中的代碼生成
7.5 JSP中的代碼生成
7.6 EJB中的代碼生成
7.6.1 部署描述符
7.6.2 替補(bǔ)實(shí)現(xiàn)
7.7 生成強(qiáng)類型集合
7.8 生成自定義串行化代碼
7.9 小結(jié)
7.10 資源
第8章 展望
8.1 當(dāng)前狀況
8.2 發(fā)展方向
8.3 資源
附錄A 交互操作2:連接Java和Win32/COM
A.1 綜述
A.2 半透明占位程序
A.3 平臺(tái)差異
A.4 組件對(duì)象模型
A.4.1 COM加載器
A.4.2 COM類型信息
A.4.3 COM對(duì)象生存期
A.4.4 COM類型發(fā)現(xiàn)
A.4.5 COM錯(cuò)誤處理
A.4.6 COM線程親緣性
A.4.7 COM安全性
A.5 Win32動(dòng)態(tài)鏈接庫
A.5.1 DLI加載器
A.5.2 DLL類型信息
A.5.3 DLL對(duì)象生存期
A.5.4 DLI類型發(fā)現(xiàn)
A.5.5 DLL錯(cuò)誤報(bào)告
A.5.6 DLL線程親緣性
A.5.7 DLL安全性
A.6 編組體系結(jié)構(gòu)
A.6.1 共享占位程序
A.6.2 通用占位程序
A.6.3 指令字符串
A.7 生成占位程序
A.7.1 生成共享占位程序
A.7.2 生成接口占位程序
A.8 小結(jié)
參考書目

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)