java為什么要實(shí)現(xiàn)序列化 java中什么類需要序列化?
java中什么類需要序列化?為了方便讀寫,例如將對(duì)象寫入文本,必須對(duì)其進(jìn)行序列化。Java對(duì)象序列化不僅保留對(duì)象的數(shù)據(jù),而且遞歸地保存對(duì)象引用的每個(gè)對(duì)象的數(shù)據(jù)。整個(gè)對(duì)象層次結(jié)構(gòu)可以寫入字節(jié)流、保存在文
java中什么類需要序列化?
為了方便讀寫,例如將對(duì)象寫入文本,必須對(duì)其進(jìn)行序列化。
Java對(duì)象序列化不僅保留對(duì)象的數(shù)據(jù),而且遞歸地保存對(duì)象引用的每個(gè)對(duì)象的數(shù)據(jù)。整個(gè)對(duì)象層次結(jié)構(gòu)可以寫入字節(jié)流、保存在文件中或通過網(wǎng)絡(luò)連接傳遞。使用對(duì)象序列化,我們可以對(duì)對(duì)象進(jìn)行“深度復(fù)制”,即復(fù)制對(duì)象本身和被引用對(duì)象本身。序列化一個(gè)對(duì)象可以產(chǎn)生一個(gè)完整的對(duì)象序列。
為什么網(wǎng)絡(luò)傳輸時(shí)對(duì)象要序列化,而字符串就不用序列化?
對(duì)象序列化可以實(shí)現(xiàn)分布式對(duì)象。例如,主要應(yīng)用程序RMI使用對(duì)象序列化在遠(yuǎn)程主機(jī)上運(yùn)行服務(wù),就像在本地主機(jī)上運(yùn)行對(duì)象一樣。Rjava對(duì)象序列化不僅保存對(duì)象的數(shù)據(jù),而且遞歸地保存對(duì)象引用的每個(gè)對(duì)象的數(shù)據(jù)。整個(gè)對(duì)象層次結(jié)構(gòu)可以寫入字節(jié)流、保存在文件中或通過網(wǎng)絡(luò)連接傳遞。對(duì)象序列化可用于“深度復(fù)制”對(duì)象本身和引用對(duì)象本身。序列化一個(gè)對(duì)象可以產(chǎn)生一個(gè)完整的對(duì)象序列。Rjava序列化相對(duì)簡(jiǎn)單,通常不需要編寫自定義代碼來(lái)保存和恢復(fù)對(duì)象狀態(tài)。實(shí)現(xiàn)java.io.Serializable可序列化接口的類對(duì)象可以轉(zhuǎn)換為字節(jié)流或從字節(jié)流中恢復(fù),而無(wú)需向類中添加任何代碼。只有在極少數(shù)情況下,才需要自定義代碼來(lái)保存或恢復(fù)對(duì)象狀態(tài)。注意:不是每個(gè)類都可以序列化。某些類無(wú)法序列化。例如,涉及線程的類與特定JVM的關(guān)系非常復(fù)雜。