java中的序列化和持久化之間的關係是什麼?

時間 2021-06-07 23:11:03

1樓:

序列化是為了解決「資料傳輸的一致性」的問題。

如:在機器A有乙個資料(假如是一串中文字串),如果要將這一串中文字串傳到機器B,那麼就涉及到傳輸的一致性問題,因為機器和機器之間的互動可以是二進位制格式,也可以是xml格式,也可以是JSON格式 。(以二進位制為例)所以就會經歷:

資料在機器A轉成二進位制資料->機器B接收到轉化後的二進位制資料->機器B將二進位制資料轉化回中文字串。

而持久化是為了解決「資料可以儲存更長週期」的問題。

如:資料在記憶體中時,是短週期的,因為記憶體釋放了,資料就沒了。

為了可以讓資料儲存更長週期,可以考慮將資料存入到資料庫,或者將資料寫到txt檔案,或者將資料寫到光碟,這樣的話資料的儲存週期就變得更長更持久了。

2樓:catalpa

要看持久化什麼,序列化什麼,本身兩個關係不大舉個有關係的例子:

拿物件來說,要持久化必須序列化

序列化不一定要持久化,在很多分布式計算中,物件都是序列化之後傳輸到各個work node,但不一定非要儲存下來。

3樓:Intopass

序列化可以將乙個複雜的物件轉化為一維的資料,而這為持久化提供了很大的方便,因為檔案就是一維的,將一維的東西寫入檔案自然比較方便。

不過持久化是個很寬泛的概念,可以是寫入檔案,也可以是存入資料庫,寫入登錄檔等多種方式。其本意是延長物件或資料的生命週期,讓其可以超越程式的生命週期,程式關閉了,甚至伺服器關機了,下次執行程式時又可以讓物件或資料恢復到原來的狀態。

而序列化也不一定是用來持久化的,可以是用來傳遞使用,如從計算機A傳遞到計算機B;也可以用來進行深拷貝;總之序列化主要解決從複雜的資料結構轉化為一維結構,或者從一維結構從新構建複雜的資料結構。

java中什麼是序列化,怎麼通俗理解序列化和反序列化?

Marco Chen 通俗理解。要搬家了,家具太大,不好搬。按說明書拆了,一塊塊的木板就節省了空間。序列化 到新家了。按照說明書重新把木板組裝成家具。反序列化 上面有乙個核心就是要有說明書。不然不知道如何拆卸和組裝。不同的說明書就代表不同的拆卸和組裝的方法。即不同的序列化方式 Seven0007 在...

C 中如何通過反射序列化泛型field?

題主沒有說清楚自己用反射序列化字典的應用場景啊,看題主的esle if我猜你是想傳入乙個object然後通過判斷object的型別來自動序列化? 趙劼 操作具體型別Dictionary的話,那麼直接用IDictionary介面就行。我這裡假設你要操作IDictionary。總而言之就是 物件導向學了...

怎麼理解java中的例項化呢?

動力節點線上 其實就是建立物件 例項變數 instance variable 或叫例項域 例項字段 instance field 或叫成員變數 member variable 例項的變數,每個例項的變數可能不同。例項方法 instance method 或叫成員方法 member method 供例...