Java平台组件开发

Java平台组件开发
作 者: Stuart Dabbs Halloway 韩宏志
出版社: 清华大学出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: JAVA语言
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Java平台组件开发》作者简介

内容简介

Java不仅是一种面向对象语言,也是一个面向组件的平台。作为一个成功的平台,Java提供诸多强大的功能。本书详细讨论了使用Java平台开发组件的优缺点,分析Java平台的一些核心功能,如类加载、反射、串行化、与本机程序的交互操作和代码生成等技术。通过本书的学习,您不仅可了解到如何有效地开发Java程序,同时也可了解到如何有效地部署Java组件,以充分利用Java提供的所有特性,创建灵活的、可重用的二进制组件,定义在运行时可安全可靠地连接二进制组件所需的服务。本书主要内容:·使用和维护类加载器·通过反射创建动态和通用服务·控制对象的串行化表示形式·加载和使用本机代码组件·扩充Java类格式以添加自定义服务·通过代码生成机制实现自动开发本书重点强调对Java程序的部署,以便于读者充分利用Java一些强大但尚未推广开的重要特性。本书前言本书详细讨论了Java平台面向组件的特性,分析类加载、反射、串行化、本机交互操作及代码生成等技术。本书对“组件”的定义独特新颖:组件是一个独立的生产和部署单元,可与其他组件结合,以组装应用程序。对象和组件是不同的概念。对象表示问题域的实体,而组件是被安装解决方案的原子成分。但对象与组件互为补充,正确的设计应兼顾二者。Java是备受开发者推崇的现代开发平台,提供了创建类和组件所需要的基础结构。Java提供封装、继承和多态性,以支持面向对象的编程等重要功能。Java还提供加载器和各种类型信息,以支持组件。本书将围绕组件阐述如何有效使用Java的组件基础结构。Java加载器在运行时定位、加载和连接组件。用Java加载器您可以做如下工作。●部署细粒度组件●根据需要动态加载组件●从网络上的其他计算机加载组件●从自定义存储库加载组件●创建存在于多个虚拟机的移动式代码代理●导入非Java组件的服务加载器管理组件间的二进制边界。在分布式应用程序和多组件供应商环境中,加载器用于定位和连接所有兼容的组件。类型信息描述一些代码单元的功能。在某些开发环境中,类型信息仅存在于源代码。而在Java中,类型信息不单纯是一种源代码,还是编译类的内在部分,可在运行时通过编程接口使用。因为Java类型信息从不被“编译掉”,所以加载器使用它在运行时验证类之间的链接。在应用程序编程中,类型信息的作用如下。●串行化Java对象的状态,以便在另一虚拟机上重建对象●在运行时创建动态代理,以提供可用于任何接口的通用服务●将数据...

图书目录

第1章 从对象到组件

第2章 类加载器体系结构

2.1 组状应用程序

2.2 类加载器结构的目标

2.1.1 透明性

2.2.2 可扩展性

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 一致性规则

2.4.2 委托规则

2.4.3 可见性规则

2.4.4 委托用作命名空间

2.4.5 非Singleton模式的静态字段

2.4.6 隐式加载隐藏了大多数细节

2.5 热部署

2.6 卸载类

2.7 引导类路径\扩展路径和类路径

2.7.1 类路径

2.7.2 扩展路径

2.7.3 引导类路径

2.8 调试类加载结构

2.8.1 改编应用程序

2.8.2 使用verbose:class标志

2.8.3 改编内核APl

2.9 倒置问题和上下文类加载器

2.10 小结

2.11 资源

第3章 类型信息和反射

3.1 二进制类格式

3.1.1 二进制兼容性

3.1.2 二进制类元数据

3.1.3 从二进制类到反射

3.2 反射

3.2.1 反射字段

3.2.2 get和getDeclared的区别

3.2.3 运行时出现的类型错误

3.2.4 反射方法

3.3 反射调用

3.3.1 反射启动器

3.3.2 包装基本类型

3.3.3 避开语言访问规则

3.3.4 反射调用引发的异常

3.4 动态代理

3.4.1 用委托代替实现继承

3.4.2 动态代理使委托通用化

3.4.3 实现InvocationHandler'

3.4.4 实现转发处理程序

3.4.5 将InvocationHandler用作通用服务

3.4.6 处理InvocationHandler中的异常

3.4.7 客户程序或服务器都可安装代理

3.4.8 动态代理的优点

3.5 反射性能

3.6 包反射

3.6.1 设置包元数据

3.6.2 访问包元数据

3.6.3 封装包

3.6.4 版本控制机制的弱点

3.7 自定义元数据

3.8 小结

3.9 资源

第4章 串行化处理机制

4.1 串行化处理和元数据

4.2 串行化基础知识

4.2.1 串行化忽略的一些字段

4.2.2 串行化与类构造函数

4.3 使用readObject和writeObject

4.4 将流与类匹配

4.4.1 serialVersionUID

4.4.2 重写默认SUID

4.4.3 兼容的和不兼容的更改

4.5 显式管理可串化字段

4.5.1 ObjectlnputStream.GetField应用提示

4.5.2 编写器对格式的处理

4.5.3 重写类元数据

4.5.4 性能问题

4.5.5 自定义类描述符

4.6 停用元数据

4.6.1 在defaultWriteObiect后写入自定义数据

4.6.2 可外部化

4.6.3 用writeObiect只写入原始数据:错误做滋

4.7 对象图

4.7.1 用Transient关键字缩减图大小

4.7.2 保存标识

4.7.3 通过reset关键字来利用无用单元收集器

4.8 对象替换

4.8.1 流控制替换

4.8.2 类控制替换

4.8.3 替换的排序规则

4.8.4 控制图排序

4.9 查找类代码

4.9.1 RMI中的注解

4.9.2 RMIMarshalledObject

4.10 小结

4.11 资源

第5章 自定义类加载器

5.1 Java2安全性

5.2 自定义类加载器

5.2.1 Java2之前的自定义类加载器

5.2.2 SDKl.2后的类加载

5.2.3 转换类加载器

5.3 协议处理程序

5.3.1 实现处理程序

5.3.2 安装自定义处理程序

5.3.3 加载器和处理程序之间的选择

5.4 为需要的加载器传递安全性

5.5 读取自定义元数据

5.5.1 版本属性示例

5.5.2 可串行类用作属性

5.5.3 在类加载时读取属性

5.5.4 调试支持

5.6 小结

5.7 资源

第6章 交互操作1:JNI

6.1 交互操作的原因

6.2 本机代码的危险

6.3 查找和加载本机代码

6.3.1 名称映射

6.3.2 类型映射

6.3.3 重载名

6.3.4 加载本机库

6.3.5 类加载器和JNI

6.3.6 加载本机库的常见错误

6.3.7 本机加载释疑

6.4 从C++调用Java

6.4.1 最小化往返次数

6.4.2 性能比较

6.4.3 JNI和反射调用的区别

6.5 JNI中的错误处理

6.5.1 本机代码中的故障

6.5.2 处理C++异常

6.5.3 从本机代码处理异常

6.5.4 从本机代码抛出Java异常

6.6 资源管理

6.6.1 与无用单元收集器的交互

6.6.2 管理本机资源

6.6.3 管理数组

6.6.4 管理字符串

6.7 小结

6.8 资源

第7章 生成式编程

7.1 使用生成式代码的原因

7.1.1 建立变性模型的面向对象的方法

7.1.2 按绑定时间进行分析

7.1.3 分离绑定时间和规范

7.1.4 选择规范语言

7.1.5 重用性的高需求

7.1.6 小型域分析很危险

7.2 用Java生成代码的原因

7.2.1 类型信息用作自由规范文档

7.2.2 类加载支持灵活绑定模式

7.2.3 易于生成Java源文件

7.2.4 易于生成Java二进制类

7.2.5 代码生成功能有利于提高性能

7.2.6 代码生成的责任级别

7.3 绑定时间和模式的分类

7.4 RMI中的代码生成

7.5 JSP中的代码生成

7.6 EJB中的代码生成

7.6.1 部署描述符

7.6.2 替补实现

7.7 生成强类型集合

7.8 生成自定义串行化代码

7.9 小结

7.10 资源

第8章 展望

8.1 当前状况

8.2 发展方向

8.3 资源

附录A 交互操作2:连接Java和Win32/COM

A.1 综述

A.2 半透明占位程序

A.3 平台差异

A.4 组件对象模型

A.4.1 COM加载器

A.4.2 COM类型信息

A.4.3 COM对象生存期

A.4.4 COM类型发现

A.4.5 COM错误处理

A.4.6 COM线程亲缘性

A.4.7 COM安全性

A.5 Win32动态链接库

A.5.1 DLI加载器

A.5.2 DLL类型信息

A.5.3 DLL对象生存期

A.5.4 DLI类型发现

A.5.5 DLL错误报告

A.5.6 DLL线程亲缘性

A.5.7 DLL安全性

A.6 编组体系结构

A.6.1 共享占位程序

A.6.2 通用占位程序

A.6.3 指令字符串

A.7 生成占位程序

A.7.1 生成共享占位程序

A.7.2 生成接口占位程序

A.8 小结

参考书目