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

時間 2021-05-06 23:41:48

1樓:Marco Chen

通俗理解。

要搬家了,家具太大,不好搬。

按說明書拆了,一塊塊的木板就節省了空間。(序列化)到新家了。

按照說明書重新把木板組裝成家具。(反序列化)上面有乙個核心就是要有說明書。不然不知道如何拆卸和組裝。

不同的說明書就代表不同的拆卸和組裝的方法。(即不同的序列化方式)

2樓:Seven0007

在傳輸過程中,物件無法直接傳輸,必須轉換成二進位制才能傳輸,將物件變成二進位制的過程就是序列化,反之就是反序列化。

例子1:

最簡單的就是將物件寫入檔案中,我們大家所說的檔案流檔案流,關鍵就是乙個流字,任何東西在寫入檔案的時候,都需要轉換成二進位製流,所以將物件寫入檔案的時候,轉換成二進位制的過程就是序列化。將檔案中的二進位製流讀入,然後轉換成物件的過程就是反序列化

例子2:

假如我們的從程式向Kafka寫資料,我們的程式是乙個jvm,kafka是乙個jvm,他們之間通過socket進行傳輸,我們程式中有乙個String物件,如何寫到kakfka,所以需要進行序列化將String物件轉換成二進位制通過ip和埠傳輸給Kafka,kafka在收到這個二進位制的時候,再通過反序列化將二進位制轉換成讓大家可見的String。所以在讀寫Kafka的時候需要指定序列化和反序列化的類。

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

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

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

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

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

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