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

java中transient關(guān)鍵字分析

 更新時間:2023年09月28日 10:29:37   作者:DF_true  
這篇文章主要介紹了java中transient關(guān)鍵字分析,transient與類對象的序列化息息相關(guān),序列化保存的是 類對象 狀態(tài),被transient關(guān)鍵字修飾的成員變量,在類的實例化對象的序列化處理過程中會被忽略,變量不會貫穿對象的序列化和反序列化,需要的朋友可以參考下

1、序列化、反序列化

序列化: 將對象的狀態(tài)信息轉(zhuǎn)換為可以存儲或傳輸?shù)男问降倪^程。

反序列化: 反序列化從序列化的表示形式中提取數(shù)據(jù),并直接設(shè)置對象狀態(tài)(賦值)。

2、作用

官方解釋:Variables may be marked transient to indicate that they are not part of the persistent state of an object.
翻譯過來:變量可以標記為瞬態(tài),以指示它們不是對象持久狀態(tài)的一部分。

transient 與類對象的序列化息息相關(guān),序列化保存的是 類對象 狀態(tài)。

transient 關(guān)鍵字修飾的成員變量,在類的實例化對象的序列化處理過程中會被忽略。

因此,transient 變量不會貫穿對象的序列化和反序列化。

3、修飾范圍

transient 只能修飾成員變量。

4、使用場景

用戶姓名、密碼、卡號等敏感信息不想被傳輸。

User 類

public class User implements Serializable {
    /**
     * 用戶ID
     */
    private Long id;
    /**
     * 年齡
     */
    private Integer age;
    /**
     * 用戶姓名
     */
    private transient String name;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", age=" + age +
                ", name='" + name + '\'' +
                '}';
    }
}
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class UserTest {
    public static void main(String[] args) {
        User liSi = new User();
        liSi.setId(1000000001L);
        liSi.setAge(18);
        liSi.setName("liSi");
        System.out.println(liSi);
        try (ObjectOutputStream outputStream = new ObjectOutputStream(new FileOutputStream("liSi.txt"))) {
            outputStream.writeObject(liSi);
        } catch (Exception ignore) {}
        try (ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream("liSi.txt"))) {
            liSi = (User) inputStream.readObject();
        } catch (Exception ignore) {}
        System.out.println(liSi);
    }
}

輸出結(jié)果:
User{id=1000000001, age=18, name='liSi'}
User{id=1000000001, age=18, name='null'} 

5、注意

transient 只有在類實現(xiàn)了 Serializable 接口才能起作用。如果把 User 類去除實現(xiàn) Serializable。

則輸出結(jié)果就會變成:

輸出結(jié)果:
User{id=1000000001, age=18, name='liSi'}
User{id=1000000001, age=18, name='liSi'} 

到此這篇關(guān)于java中transient關(guān)鍵字分析的文章就介紹到這了,更多相關(guān)java的transient內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java基本數(shù)據(jù)類型和運算符詳解

    Java基本數(shù)據(jù)類型和運算符詳解

    這篇文章主要介紹了Java基本數(shù)據(jù)類型和運算符,結(jié)合實例形式詳細分析了java基本數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換、算術(shù)運算符、邏輯運算符等相關(guān)原理與操作技巧,需要的朋友可以參考下
    2020-02-02
  • Spring聲明式事務(wù)@Transactional注解實現(xiàn)元數(shù)據(jù)驅(qū)動的事務(wù)管理

    Spring聲明式事務(wù)@Transactional注解實現(xiàn)元數(shù)據(jù)驅(qū)動的事務(wù)管理

    這篇文章主要為大家介紹了Spring聲明式事務(wù)@Transactional注解實現(xiàn)元數(shù)據(jù)驅(qū)動的事務(wù)管理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • Java開發(fā)之普通web項目轉(zhuǎn)為Maven項目的方法

    Java開發(fā)之普通web項目轉(zhuǎn)為Maven項目的方法

    這篇文章主要給大家介紹了關(guān)于Java開發(fā)之普通web項目轉(zhuǎn)為Maven項目的相關(guān)資料,文中通過圖文將轉(zhuǎn)換的方法步驟介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • Java中new Date().getTime()指定時區(qū)的時間戳問題小結(jié)

    Java中new Date().getTime()指定時區(qū)的時間戳問題小結(jié)

    本文主要介紹了Java中new Date().getTime()時間戳問題小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 使用EasyPoi完成復(fù)雜一對多excel表格導(dǎo)出功能全過程

    使用EasyPoi完成復(fù)雜一對多excel表格導(dǎo)出功能全過程

    這篇文章主要介紹了使用EasyPoi完成復(fù)雜一對多excel表格導(dǎo)出功能全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Feign?請求動態(tài)URL方式

    Feign?請求動態(tài)URL方式

    這篇文章主要介紹了Feign?請求動態(tài)URL方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Java BeanPostProcessor與BeanFactoryPostProcessor基礎(chǔ)使用講解

    Java BeanPostProcessor與BeanFactoryPostProcessor基礎(chǔ)使用講解

    這篇文章主要介紹了Java BeanPostProcessor與BeanFactoryPostProcessor基礎(chǔ)使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2022-11-11
  • Spring MVC 更靈活的控制 json 返回問題(自定義過濾字段)

    Spring MVC 更靈活的控制 json 返回問題(自定義過濾字段)

    本篇文章主要介紹了Spring MVC 更靈活的控制 json 返回問題(自定義過濾字段),具有一定的參考價值,感興趣的小伙伴們可以參考一下。
    2017-02-02
  • java 深拷貝與淺拷貝機制詳解

    java 深拷貝與淺拷貝機制詳解

    這篇文章主要介紹了 java 深拷貝與淺拷貝機制詳解的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • Hibernate緩存詳解

    Hibernate緩存詳解

    本文主要介紹了Hibernate緩存的相關(guān)知識。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02

最新評論