"java.io.Serializable"}的对象保存于目录中 。一个应用在目录中查找JAVA对象可能用
javaClassName来在该目录中产生JAVA对象的名字与类型的集合 。别的应用程序可以
用javaClassNames属性来寻找,比如,所有的java.security.Permission对象 。
javaCodebase是个多值属性用于保存对象的类定义定位 。javaDoc用于保存指向类的
JAVA文档的指针(URL) 。description用于保存JAVA对象的文本描述且定义于
[v3Schema]中 。这些属性的定义在第3节中 。
2.2可序列化对象
可序列化一个对象意味着将其状态转换成字节流使字节流能被转换回对象的一个副本 。
假如一个JAVA对象的类或它的任何超类实现了java.io.Serializable接口或它的子接口
java.io.Externalizable,则此JAVA对象是可序列化的(serializable) 。"Deserialization"是
指将序列化的对象形态转换回对象的一个副本的过程 。当一个对象序列化之后,以此对
象为根的整个对象树也都是序列化的 。当它被逆序列化后整个树被重建 。比如,假设一
个可序列化的Book对象包括(一个可序列化的字段)一个Page数组对象 。当一个Book
对象序列化后,Page数组对象亦被序列化 。
JAVA平台指定一个默认的算法用来序列化可序列化对象 。JAVA类也可以以自己的算
法来覆盖这个默认序列化 。序列[Serial]具体地描述了对象序列化 。
当一个对象序列化时,标识它的类的信息被记录在这个序列化流中 。然而类的定义(类
文件)本身没被记录 。逆序列化对象以决定用于定位和加载相关联的类的定义,是系统
的职责 。比如,JAVA应用可能包括它的类路径(classpath)在JAR文件中包含可序列
化对象的类定义,或者如以下所解释的那样用目录中的信息加载类定义 。
2.2.1目录中的表征
一个可序列化的对象在目录中用javaClassName,javaClassNames,javaCodeBase,和
javaSerializedData属性表征,这些属性在第3节中定义 。必选属性javaSerializedData包
括对象的序列化形态 。尽管序列化形态已包含类名,必选属性javaClassName还是记录
了被序列化对象的类名以使应用能够在不必先逆序列化该对象就能确定类信息 。可选的
javaClassNames属性用来记录附加有关序列化对象的类信息 。可选的javaCodeBase属
性用于记录逆序列化对象所必需的类定义的位置 。
一条包含一个序列化对象的目录记录用javaObject的子类javaSerializedObject对象类来
表征 。javaSerializedObject是个辅助对象类,也就是说它需与一个结构上的对象类混合
使用 。javaSerializedObject的定义在第4节中给出 。
2.3整理过的对象
“整理”一个对象就是在它是“未经整理”时的以一种方式记录其状态和代码存根
(codebase(s))的方法,原始对象的一个副本可能自动在加载该对象的类定义 。你可以
整理任何可序列化或远程的(即,实现java.rmi.Remote接口)对象 。除了整理还记录
代码存根(codebase),整理就与序列化一样 。整理与序列化的不同之处在于整理格外
地对待远程对象 。假如一个对象是java.rmi.Remote对象,整理记录远程对象的“存根”
(stub)(见第2.5节),而不是记录远程对象本身 。如序列化那样,当一个对象被整理
后,整个以此对象为根的对象树均被整理 。当它被逆整理,整个树亦被逆整理 。
一个“整理过的”对象用java.rmi.MarshalledObject类表征 。这里有个如何为可序列化
与远程对象创建MarshalledObject的例子:
java.io.Serializablesobj=...;
java.rmi.MarshalledObjectmobj1=
推荐阅读
- 轻型目录存取协议 LDAP目录中的CORBA对象参考方案
- v3 简单目录访问协议:传输层安全扩展
- 如何开通存取款短信通知
- word文档自动生成目录的方法步骤
- office2016目录和索引怎么添加
- 如何复制文件到SD卡根目录
- 2011年大益普洱茶品种目录
- 目录和文件有什么区别
- 目录树是什么
- 冬瓜乌鸡汤
