日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

輕型目錄存取協(xié)議 LDAP目錄中JAVATM對(duì)象的表征模式( 二 )


"java.io.Serializable"}的對(duì)象保存于目錄中 。一個(gè)應(yīng)用在目錄中查找JAVA對(duì)象可能用
javaClassName來(lái)在該目錄中產(chǎn)生JAVA對(duì)象的名字與類型的集合 。別的應(yīng)用程序可以
用javaClassNames屬性來(lái)尋找,比如,所有的java.security.Permission對(duì)象 。
javaCodebase是個(gè)多值屬性用于保存對(duì)象的類定義定位 。javaDoc用于保存指向類的
JAVA文檔的指針(URL) 。description用于保存JAVA對(duì)象的文本描述且定義于
[v3Schema]中 。這些屬性的定義在第3節(jié)中 。
2.2可序列化對(duì)象
可序列化一個(gè)對(duì)象意味著將其狀態(tài)轉(zhuǎn)換成字節(jié)流使字節(jié)流能被轉(zhuǎn)換回對(duì)象的一個(gè)副本 。
假如一個(gè)JAVA對(duì)象的類或它的任何超類實(shí)現(xiàn)了java.io.Serializable接口或它的子接口
java.io.Externalizable,則此JAVA對(duì)象是可序列化的(serializable) 。"Deserialization"是
指將序列化的對(duì)象形態(tài)轉(zhuǎn)換回對(duì)象的一個(gè)副本的過(guò)程 。當(dāng)一個(gè)對(duì)象序列化之后,以此對(duì)
象為根的整個(gè)對(duì)象樹(shù)也都是序列化的 。當(dāng)它被逆序列化后整個(gè)樹(shù)被重建 。比如,假設(shè)一
個(gè)可序列化的Book對(duì)象包括(一個(gè)可序列化的字段)一個(gè)Page數(shù)組對(duì)象 。當(dāng)一個(gè)Book
對(duì)象序列化后,Page數(shù)組對(duì)象亦被序列化 。
JAVA平臺(tái)指定一個(gè)默認(rèn)的算法用來(lái)序列化可序列化對(duì)象 。JAVA類也可以以自己的算
法來(lái)覆蓋這個(gè)默認(rèn)序列化 。序列[Serial]具體地描述了對(duì)象序列化 。
當(dāng)一個(gè)對(duì)象序列化時(shí),標(biāo)識(shí)它的類的信息被記錄在這個(gè)序列化流中 。然而類的定義(類
文件)本身沒(méi)被記錄 。逆序列化對(duì)象以決定用于定位和加載相關(guān)聯(lián)的類的定義,是系統(tǒng)
的職責(zé) 。比如,JAVA應(yīng)用可能包括它的類路徑(classpath)在JAR文件中包含可序列
化對(duì)象的類定義,或者如以下所解釋的那樣用目錄中的信息加載類定義 。
2.2.1目錄中的表征
一個(gè)可序列化的對(duì)象在目錄中用javaClassName,javaClassNames,javaCodeBase,和
javaSerializedData屬性表征,這些屬性在第3節(jié)中定義 。必選屬性javaSerializedData包
括對(duì)象的序列化形態(tài) 。盡管序列化形態(tài)已包含類名,必選屬性javaClassName還是記錄
了被序列化對(duì)象的類名以使應(yīng)用能夠在不必先逆序列化該對(duì)象就能確定類信息 。可選的
javaClassNames屬性用來(lái)記錄附加有關(guān)序列化對(duì)象的類信息 。可選的javaCodeBase屬
性用于記錄逆序列化對(duì)象所必需的類定義的位置 。
一條包含一個(gè)序列化對(duì)象的目錄記錄用javaObject的子類javaSerializedObject對(duì)象類來(lái)
表征 。javaSerializedObject是個(gè)輔助對(duì)象類,也就是說(shuō)它需與一個(gè)結(jié)構(gòu)上的對(duì)象類混合
使用 。javaSerializedObject的定義在第4節(jié)中給出 。
2.3整理過(guò)的對(duì)象
“整理”一個(gè)對(duì)象就是在它是“未經(jīng)整理”時(shí)的以一種方式記錄其狀態(tài)和代碼存根
(codebase(s))的方法,原始對(duì)象的一個(gè)副本可能自動(dòng)在加載該對(duì)象的類定義 。你可以
整理任何可序列化或遠(yuǎn)程的(即,實(shí)現(xiàn)java.rmi.Remote接口)對(duì)象 。除了整理還記錄
代碼存根(codebase),整理就與序列化一樣 。整理與序列化的不同之處在于整理格外
地對(duì)待遠(yuǎn)程對(duì)象 。假如一個(gè)對(duì)象是java.rmi.Remote對(duì)象,整理記錄遠(yuǎn)程對(duì)象的“存根”
(stub)(見(jiàn)第2.5節(jié)),而不是記錄遠(yuǎn)程對(duì)象本身 。如序列化那樣,當(dāng)一個(gè)對(duì)象被整理
后,整個(gè)以此對(duì)象為根的對(duì)象樹(shù)均被整理 。當(dāng)它被逆整理,整個(gè)樹(shù)亦被逆整理 。
一個(gè)“整理過(guò)的”對(duì)象用java.rmi.MarshalledObject類表征 。這里有個(gè)如何為可序列化
與遠(yuǎn)程對(duì)象創(chuàng)建MarshalledObject的例子:
java.io.Serializablesobj=...;
java.rmi.MarshalledObjectmobj1=

推薦閱讀