序列化簡單的說就是把對象的位元組序列永久的保存到硬碟上,但是一些文件操作類也能實現把對象保存到本地(文件流保存XML文件),在存儲對象的結果上是沒有什麼差別的(序列化能保存對象的類型[pototype],而文件操作不能),只不過最後文件類型不同,但是在把對象保存到本地後想對對象在進行操作就有很大差別了 ...
序列化簡單的說就是把對象的位元組序列永久的保存到硬碟上,但是一些文件操作類也能實現把對象保存到本地(文件流保存XML文件),在存儲對象的結果上是沒有什麼差別的(序列化能保存對象的類型[pototype],而文件操作不能),只不過最後文件類型不同,但是在把對象保存到本地後想對對象在進行操作就有很大差別了,比如說保存了一個類對象,類對象的結構和數據都可以取到,但是文件操作類沒有辦法去調到類對象中的方法。文件操作類保存過得對象的類型就是字元串,沒有辦法再轉換成之前對象的類型
而且序列化也還有一些好處,比方說在面向服務的編程中要傳輸的對象被序列化之後安全性也可以得到保障,也可以實現跨平臺,在傳統編程中,你在表示層實例化一個業務對象,然後調用業務對象中的方法,你想過為什麼能這樣調用嗎?這樣做耦合度太高,很不好。如果序列化以後通過特定的協議傳輸數據就不一樣了,表示層通過代理或通道向服務層發送特定的數據格式,這個數據就是序列化以後的,比如XML,服務端接收到以後要進行反序列化,生成服務端可識別的數據格式,比如一個類,然後對數據進行操作,再序列化發送到客戶端,客戶端再反序列化。這樣客戶端可以使用和服務端完全不同的開發平臺,只要它能夠對xml數據進行反序列化,而xml是具有工業標準的數據格式,基本各平臺都支持。這也適用於在進程間通信。如果在進程內通信,也可以做到更高的安全性,對象不再通過調用棧交互,而是通過代理或通道。