java 临时对象指什么_为什么Java有临时字段?

b700ec0e089a602c40c9bafe6397f6d0.png

慕丝7291255

在理解transient关键字,必须理解序列化的概念。如果读者知道序列化,请跳过第一点。什么是序列化?序列化是使对象的状态持久的过程。这意味着将对象的状态转换为用于持久化(例如在文件中存储字节)或传输(例如通过网络发送字节)的字节流。同样,我们可以使用反序列化从字节中返回对象的状态。这是Java编程中的一个重要概念,因为序列化主要用于网络编程。需要通过网络传输的对象必须转换为字节。为此,每个类或接口必须实现Serializable接口。它是一个没有任何方法的标记接口。现在是什么transient关键词及其用途?默认情况下,所有对象的变量都转换为持久状态。在某些情况下,您可能希望避免持久化某些变量,因为您不需要持久化这些变量。所以您可以将这些变量声明为transient..如果变量声明为transient,那么它就不会持久了。这是transient关键词。我想用以下例子解释上述两点:package javabeat.samples;import java.io.FileInputStream;import java.io.FileOutputStream;

import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;

import java.io.Serializable;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;

    }

    public String toString(){

        StringBuffer sb = new StringBuffer(40);

        sb.append("First Name : ");

        sb.append(this.firstName);

        sb.append("Middle Name : ");

        sb.append(this.middleName);

        sb.append("Last Name : ");

        sb.append(this.lastName);

        return sb.toString();

    }}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);

    }}产出如下:First Name : Steve

Middle Name : null

Last Name : Jobs中间名被宣布为transient,所以它不会存储在持久存储中。来源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值