溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

serializable接口的作用有哪些

發布時間:2021-02-23 11:59:55 來源:億速云 閱讀:896 作者:小新 欄目:互聯網科技

小編給大家分享一下serializable接口的作用有哪些,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

serializable接口的作用:1、存儲對象在存儲介質中,以便在下次使用的時候,可以很快捷的重建一個副本;2、便于數據傳輸,尤其是在遠程調用的時候。

serializable接口的作用:

Serializable接口是啟用其序列化功能的接口。實現java.io.Serializable 接口的類是可序列化的。沒有實現此接口的類將不能使它們的任意狀態被序列化或逆序列化。

個人理解:

這個介紹非常的不接地氣,于是我與去看了幾篇博客,有一個小姐姐的博客引起了我的注意,她是這樣理解的:

序列化的過程,就是一個“freeze”的過程,它將一個對象freeze(冷凍)住,然后進行存儲,等到再次需要的時候,再將這個對象de-freeze就可以立即使用。

我們以為的沒有進行序列化,其實是在聲明的各個不同變量的時候,由具體的數據類型幫助我們實現了序列化操作。

如果有人打開過Serializable接口的源碼,就會發現,這個接口其實是個空接口,那么這個序列化操作,到底是由誰去實現了呢?其實,看一下接口的注釋說明就知道,當我們讓實體類實現Serializable接口時,其實是在告訴JVM此類可被序列化,可被默認的序列化機制序列化。

序列化的作用:

*序列化是將對象狀態轉換為可保持或傳輸的格式的過程。與序列化相對的是反序列化,它將流轉換為對象。這兩個過程結合起來,可以輕松地存儲和傳輸數據。

1,存儲對象在存儲介質中,以便在下次使用的時候,可以很快捷的重建一個副本。也就是When the resulting series of bits is reread according to the serialization format, it can be used to create a semantically identical clone of the original object.

問題:我沒有實現序列化的時候,我一樣可以存入到我的sqlserver或者MySQL、Oracle數據庫中啊,為什么一定要序列化才能存儲呢????

2,便于數據傳輸,尤其是在遠程調用的時候

實現java.io.Serializable這個接口是為序列化,serialVersionUID 用來表明實現序列化類的不同版本間的兼容性。如果你修改了此類, 要修改此值。

否則以前用老版本的類序列化的類恢復時會出錯。

實現后如果你用的是工具的話會出來警告,他會提示你,可以自動生成private static final long serialVersionUID = 1L; 為了在反序列化時,確保類版本的兼容性,最好在每個要序列化的類中加入private static final long serialVersionUID這個屬性,具體數值自己定義. 

關于serialVersionUID的解釋

serialVersionUID作用: 序列化時為了保持版本的兼容性,即在版本升級時反序列化仍保持對象的唯一性。

你可以隨便寫一個,在Eclipse中它替你生成一個,有兩種生成方式: 一個是默認的1L,比如:

private static final long serialVersionUID = 1L;

一個是根據類名、接口名、成員方法及屬性等來生成一個64位的哈希字段,比如:

private static final long serialVersionUID = -8940196742313994740L;

以上是“serializable接口的作用有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女