Java:對象的持久化與序列化

原文:http://www.zhihu.com/question/20706270

對象持久化(Persistence)


對象持久化就是將對象存儲在可持久保存的存儲介質上,例如主流的關係數據庫中。在實際應用中,需要將業務數據以對象的方式保存在數據庫中,就需要應用到相應的對象持久化框架,如現在廣爲認知的Hibernate。而如果查閱對象持久化的歷史,你會發現早在1970年就已經開始有稱之爲面向對象數據庫OODBMS。通常這些面向對象的數據庫和特定的一種語言綁定。對象持久化的重點在於如何將業務數據對象存儲在持久化介質上,並同時提供查詢修改的手段。

數據序列化(Serialization)

數據序列化就是將對象或者數據結構轉化成特定的格式,使其可在網絡中傳輸,或者可存儲在內存或者文件中。反序列化則是相反的操作,將對象從序列化數據中還原出來。而對象序列化後的數據格式可以是二進制,可以是XML,也可以是JSON等任何格式。對象/數據序列化的重點在於數據的交換和傳輸,例如在遠程調用技術(如EJB,XML-RPC, Web Service),或者在GUI控件開發(JavaBean)等等。

總結一下,對象持久化和對象序列化是兩個完全不同的應用場景,儘管你也可以說將一個對象序列化後存儲在數據庫中,但是你也不能說是對象持久化。
發佈了8 篇原創文章 · 獲贊 10 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章