最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Java實(shí)體類Serializable序列化接口的作用和必要性解析

 更新時(shí)間:2023年05月18日 10:38:42   作者:不放糖的苦咖啡  
序列化是將對(duì)象狀態(tài)轉(zhuǎn)化為可保持或者傳輸?shù)母袷竭^程,與序列化相反的是反序列化,完成序列化和反序列化,可以存儲(chǔ)或傳輸數(shù)據(jù),一般情況下,在定義實(shí)體類時(shí)會(huì)使用Serializable,需要的朋友可以參考下

在Java Web編程中,很多實(shí)體類會(huì)實(shí)現(xiàn)Serializable 接口,但是很多實(shí)體在使用中并沒有序列化也能正常使用。

定義:把對(duì)象轉(zhuǎn)換為字節(jié)序列的過程稱為對(duì)象的序列化

把字節(jié)序列恢復(fù)為對(duì)象的過程稱為對(duì)象的反序列化

那么Serializable 接口有什么作用呢?

Serializable作為序列化的一種方式。

序列化可以理解為一種機(jī)制,按照一定的格式將Java 對(duì)象的某種狀態(tài)轉(zhuǎn)成介質(zhì)可以接受的形式,以便存儲(chǔ)或傳輸。

序列化實(shí)現(xiàn)將Java 對(duì)象相關(guān)的類信息、屬性及屬性值等等保存起來,便于存儲(chǔ)和傳輸。

序列化的作用可以總結(jié)以下:

(1)提供一種簡(jiǎn)單又可拓展的對(duì)象保存恢復(fù)機(jī)制

(2)對(duì)于遠(yuǎn)程調(diào)用,能方便對(duì)對(duì)象進(jìn)行編碼和解碼,就像實(shí)現(xiàn)對(duì)象直接傳輸

(3)可以將對(duì)象持久化到介質(zhì)中,就像實(shí)現(xiàn)對(duì)對(duì)象直接存儲(chǔ)。

(4)允許對(duì)象自定義外部存儲(chǔ)的格式。

序列化的簡(jiǎn)單理解方式:

序列化的過程,就是一個(gè)“freeze”的過程,它將一個(gè)對(duì)象freeze(冷凍)住,然后進(jìn)行存儲(chǔ),等到再次需要的時(shí)候,再將這個(gè)對(duì)象de-freeze就可以立即使用。我們以為的沒有進(jìn)行序列化,其實(shí)是在聲明的各個(gè)不同變量的時(shí)候,由具體的數(shù)據(jù)類型幫助我們實(shí)現(xiàn)了序列化操作。如果有人打開過Serializable接口的源碼,就會(huì)發(fā)現(xiàn),這個(gè)接口其實(shí)是個(gè)空接口,那么這個(gè)序列化操作,到底是由誰(shuí)去實(shí)現(xiàn)了呢?其實(shí),看一下接口的注釋說明就知道,當(dāng)我們讓實(shí)體類實(shí)現(xiàn)Serializable接口時(shí),其實(shí)是在告訴JVM此類可被序列化,可被默認(rèn)的序列化機(jī)制序列化。

例子:

@Data
@ToString
public class UserRole implements Serializable {
    private static final long serialVersionUID = -6056129805075132981L;
    private int id;
    private int user_id;
    private int role_id;
}

一個(gè)實(shí)體類User實(shí)現(xiàn)Serializable接口,并且定義了serialVersionUID變量。

serialVersionUID是用來輔助對(duì)象的序列化與反序列化的,原則上序列化后的數(shù)據(jù)當(dāng)中的serialVersionUID與當(dāng)前類當(dāng)中的serialVersionUID一致,那么該對(duì)象才能被反序列化成功。

工作機(jī)制:在序列化的時(shí)候系統(tǒng)將serialVersionUID寫入到序列化的文件中去,當(dāng)反序列化的時(shí)候系統(tǒng)會(huì)先去檢測(cè)文件中的serialVersionUID是否跟當(dāng)前的文件的serialVersionUID是否一致,如果一直則反序列化成功,否則就說明當(dāng)前類跟序列化后的類發(fā)生了變化。

到此這篇關(guān)于關(guān)于Java實(shí)體類Serializable序列化接口的作用和必要性解析的文章就介紹到這了,更多相關(guān)Java序列化接口Serializable內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文搞懂Java中的日期類

    一文搞懂Java中的日期類

    在程序的開發(fā)中我們經(jīng)常會(huì)遇到日期類型的操作,Java對(duì)日期類型的操作提供了很好的支持。本文將通過示例來聊聊Java中日期類的使用,需要的可以參考一下
    2022-09-09
  • Spring Cloud之服務(wù)監(jiān)控turbine的示例

    Spring Cloud之服務(wù)監(jiān)控turbine的示例

    這篇文章主要介紹了Spring Cloud之服務(wù)監(jiān)控turbine的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • Spring事務(wù)管理零基礎(chǔ)入門

    Spring事務(wù)管理零基礎(chǔ)入門

    事務(wù)的作用就是為了保證用戶的每一個(gè)操作都是可靠的,事務(wù)中的每一步操作都必須成功執(zhí)行,只要有發(fā)生異常就?回退到事務(wù)開始未進(jìn)行操作的狀態(tài)。事務(wù)管理是Spring框架中最為常用的功能之一,我們?cè)谑褂肧pring?Boot開發(fā)應(yīng)用時(shí),大部分情況下也都需要使用事務(wù)
    2022-10-10
  • java實(shí)現(xiàn)留言板功能實(shí)例

    java實(shí)現(xiàn)留言板功能實(shí)例

    這篇文章主要為大家詳細(xì)介紹了JSP+JavaBean的留言板技術(shù) ,JavaWeb登陸功能實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • ArrayList源碼和多線程安全問題分析

    ArrayList源碼和多線程安全問題分析

    這篇文章主要介紹了ArrayList源碼和多線程安全問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面小編和大家一起來學(xué)習(xí)一下吧
    2019-05-05
  • Spring?中的InitializingBean使用示例

    Spring?中的InitializingBean使用示例

    InitializingBean?是?Spring?框架中的一個(gè)接口,用于在?Spring?容器中初始化?bean?時(shí)執(zhí)行特定的初始化邏輯,這篇文章主要介紹了Spring?中的InitializingBean使用示例,需要的朋友可以參考下
    2024-08-08
  • Springboot整合支付寶支付功能

    Springboot整合支付寶支付功能

    這篇文章主要介紹了Springboot整合支付寶支付功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-01-01
  • Mybatis-plus獲取雪花算法生成的ID并返回生成ID

    Mybatis-plus獲取雪花算法生成的ID并返回生成ID

    本文主要介紹了Mybatis-plus獲取雪花算法生成的ID并返回生成ID,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-09-09
  • 在SpringBoot項(xiàng)目中使用JetCache緩存的詳細(xì)教程

    在SpringBoot項(xiàng)目中使用JetCache緩存的詳細(xì)教程

    Spring Boot是一個(gè)非常流行的Java開發(fā)框架,JetCache是一個(gè)基于注解的高性能緩存框架,本文將介紹如何在Spring Boot項(xiàng)目中使用JetCache緩存,并提供一個(gè)詳細(xì)案例來說明如何配置和使用JetCache,需要的朋友可以參考下
    2024-06-06
  • Springboot結(jié)合Flowable實(shí)現(xiàn)工作流開發(fā)

    Springboot結(jié)合Flowable實(shí)現(xiàn)工作流開發(fā)

    本文主要介紹了Springboot結(jié)合Flowable實(shí)現(xiàn)工作流開發(fā),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評(píng)論

绥芬河市| 德安县| 永年县| 区。| 南木林县| 麻阳| 新巴尔虎左旗| 屯留县| 涞源县| 衢州市| 赣州市| 玛纳斯县| 册亨县| 仪征市| 油尖旺区| 神农架林区| 黄大仙区| 克山县| 博爱县| 嘉峪关市| 修文县| 铁岭市| 孟州市| 杭锦旗| 庐江县| 宜宾县| 两当县| 兴和县| 桂平市| 太保市| 奎屯市| 巴彦淖尔市| 张家港市| 丰台区| 武邑县| 印江| 安仁县| 台安县| 高陵县| 肃宁县| 景宁|