欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java transient關(guān)鍵字原理解析

 更新時(shí)間:2020年01月21日 09:15:41   作者:King-D  
這篇文章主要介紹了Java transient關(guān)鍵字原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了Java transient關(guān)鍵字原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

Java 中的 transient 關(guān)鍵字被用來(lái)表示變量將不被序列化處理。那么在理解 transient 關(guān)鍵字之前,我們先了解下什么是序列化。

什么是序列化

序列化是對(duì)象進(jìn)行持久化處理,也就是說(shuō),將對(duì)象轉(zhuǎn)化成一個(gè)字節(jié)流進(jìn)行存儲(chǔ)(比如存儲(chǔ)為一個(gè)字節(jié)文件)或傳輸(通過(guò)網(wǎng)絡(luò)傳輸字節(jié))。同時(shí),我們也可以從字節(jié)中反序列化一個(gè)對(duì)象出來(lái)。這是Java程序中一個(gè)重要的概念,因?yàn)榫W(wǎng)絡(luò)應(yīng)用中通常需要將對(duì)象序列化成字節(jié)傳輸。每一個(gè)需要序列化的對(duì)象,都要實(shí)現(xiàn) Serializable 接口。

transient關(guān)鍵字

默認(rèn)情況下,對(duì)象所有的變量都會(huì)轉(zhuǎn)變成持久狀態(tài)。但是有時(shí)候,一些變量可能不需要序列化,因?yàn)闆](méi)必要對(duì)這些變量進(jìn)行序列化。這時(shí),你就可以將這些變量申明為 transient。如果一個(gè)變量被申明為 transient,那么這個(gè)變量就不會(huì)被序列化。

通過(guò)下面這個(gè)例子應(yīng)該能夠解釋 transient 關(guān)鍵字的作用:

public class NameStore implements Serializable {
  private String firstName;
  private transient String middleName;
  private String lastName;

  public NameStore (String fName, String mName, String lName){
    this.firstName = fName;
    this.middleName = mName;
    this.lastName = lName;
  }

  @Override
  public String toString() {
    return "NameStore{" +
        "firstName='" + firstName + '\'' +
        ", middleName='" + middleName + '\'' +
        ", lastName='" + lastName + '\'' +
        '}';
  }
}

public class TransientExample {
  public static void main(String[] args) throws Exception {
    NameStore nameStore = new NameStore("Steve", "Middle","Jobs");
    ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream("nameStore"));
    // writing to object
    o.writeObject(nameStore);
    o.close();

    // reading from object
    ObjectInputStream in = new ObjectInputStream(new FileInputStream("nameStore"));
    NameStore nameStore1 = (NameStore)in.readObject();
    System.out.println(nameStore1);
  }
}

上面例子的輸出:

NameStore{firstName='Steve', middleName='null', lastName='Jobs'}

middleName 變量被申明為 transient,因此沒(méi)有被序列化.

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • java中Servlet程序下載文件實(shí)例詳解

    java中Servlet程序下載文件實(shí)例詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于java中Servlet程序下載文件實(shí)例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-02-02
  • 淺談java 執(zhí)行jar包中的main方法

    淺談java 執(zhí)行jar包中的main方法

    下面小編就為大家?guī)?lái)一篇淺談java 執(zhí)行jar包中的main方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-09-09
  • SpringBoot統(tǒng)一響應(yīng)格式及統(tǒng)一異常處理

    SpringBoot統(tǒng)一響應(yīng)格式及統(tǒng)一異常處理

    在我們開(kāi)發(fā)SpringBoot后端服務(wù)時(shí),一般需要給前端統(tǒng)一響應(yīng)格式,本文主要介紹了SpringBoot統(tǒng)一響應(yīng)格式及統(tǒng)一異常處理
    2023-05-05
  • springboot中如何通過(guò)cors協(xié)議解決跨域問(wèn)題

    springboot中如何通過(guò)cors協(xié)議解決跨域問(wèn)題

    這篇文章主要介紹了springboot中通過(guò)cors協(xié)議解決跨域問(wèn)題,cors是一個(gè)w3c標(biāo)準(zhǔn),它允許瀏覽器(目前ie8以下還不能被支持)像我們不同源的服務(wù)器發(fā)出xmlHttpRequest請(qǐng)求,我們可以繼續(xù)使用ajax進(jìn)行請(qǐng)求訪問(wèn)。具體內(nèi)容詳情大家跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-05-05
  • 基于Spring Data Jest的Elasticsearch數(shù)據(jù)統(tǒng)計(jì)示例

    基于Spring Data Jest的Elasticsearch數(shù)據(jù)統(tǒng)計(jì)示例

    本篇文章主要介紹了基于Spring Data Jest的Elasticsearch數(shù)據(jù)統(tǒng)計(jì)示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • 一文帶你弄清Map集合及其實(shí)現(xiàn)類

    一文帶你弄清Map集合及其實(shí)現(xiàn)類

    在Java中,Map是一種鍵值對(duì)(Key-Value)的集合,它存儲(chǔ)了一組唯一的鍵與相應(yīng)的值,每個(gè)鍵可以映射到一個(gè)值,這篇文章將詳細(xì)介紹Map集合及其一些常見(jiàn)的實(shí)現(xiàn)類,適合小白,感興趣的同學(xué)可以參考閱讀
    2023-06-06
  • java實(shí)現(xiàn)簡(jiǎn)易版簡(jiǎn)易版dubbo

    java實(shí)現(xiàn)簡(jiǎn)易版簡(jiǎn)易版dubbo

    dubbo是阿里開(kāi)源的rpc框架,目前是apache頂級(jí)開(kāi)源項(xiàng)目,可以用來(lái)構(gòu)建微服務(wù)。本文主要介紹了如何通過(guò)java實(shí)現(xiàn)簡(jiǎn)易版的dubbo,感興趣的小伙伴可以了解一下
    2021-11-11
  • JAVA多線程之方法 JOIN詳解及實(shí)例代碼

    JAVA多線程之方法 JOIN詳解及實(shí)例代碼

    這篇文章主要介紹了JAVA多線程之方法 JOIN詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • SpringBoot整合XxlJob分布式任務(wù)調(diào)度平臺(tái)

    SpringBoot整合XxlJob分布式任務(wù)調(diào)度平臺(tái)

    xxl-job是一個(gè)開(kāi)源的分布式定時(shí)任務(wù)框架,它可以與其他微服務(wù)組件一起構(gòu)成微服務(wù)集群。它的調(diào)度中心(xxl-job)和執(zhí)行器(自己的springboot項(xiàng)目中有@XxlJob("定時(shí)任務(wù)名稱")的方法)是相互分離,分開(kāi)部署的,兩者通過(guò)HTTP協(xié)議進(jìn)行通信
    2023-02-02
  • java 制作驗(yàn)證碼并進(jìn)行驗(yàn)證實(shí)例詳解

    java 制作驗(yàn)證碼并進(jìn)行驗(yàn)證實(shí)例詳解

    這篇文章主要介紹了java 制作驗(yàn)證碼并進(jìn)行驗(yàn)證實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04

最新評(píng)論