手册
目录
收藏649
分享
阅读791
更新时间2025-07-22
前言:
定义和用法transient 关键字是一个修饰符,用于指示 Java 在序列化对象时忽略某个属性。实例transient 关键字用于防止属性被序列化:impor
transient 关键字是一个修饰符,用于指示 Java 在序列化对象时忽略某个属性。
transient 关键字用于防止属性被序列化:
import java.io.*;
public class Main {
  public static void main(String[] args) {
    Person person = new Person();
    person.fname = "Bill";
    person.lname = "Gates";
    person.age = 19;
    person.accessCode = 5044;
    // 序列化对象
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    try {
      ObjectOutputStream objOut = new ObjectOutputStream(output);
      objOut.writeObject(person);
    } catch (IOException e) {}
    // 反序列化对象
    Person person2 = new Person();
    try {
      ObjectInputStream objIn = new ObjectInputStream(new ByteArrayInputStream(output.toByteArray()));
      person2 = (Person) objIn.readObject();
    } catch(Exception e) {}
    // 打印反序列化后的对象
    System.out.println("名字: " + person2.fname);
    System.out.println("姓氏: " + person2.lname);
    System.out.println("年龄: " + person2.age);
    System.out.println("访问代码: " + person2.accessCode); // 此处将打印出 0,因为 accessCode 被标记为 transient,所以未被序列化
  }
}
class Person implements Serializable {
  String fname = "Bill";
  String lname = "Gates";
  int age = 19;
  transient int accessCode = 0; // 这个属性在序列化时会被忽略
}
点击 "运行实例" 按钮查看在线实例
在这个例子中,Person 类有一个 transient 修饰的 accessCode 属性。当 Person 对象被序列化时,accessCode 属性不会被包含在序列化数据中。因此,在反序列化后,accessCode 的值将恢复为其默认值(在这个例子中是 0),而不是序列化之前的值(5044)。
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
							
							共5课时
17.2万人学习
							
							共49课时
77万人学习
							
							共29课时
61.7万人学习
							
							共25课时
39.3万人学习
							
							共43课时
70.9万人学习
							
							共25课时
61.6万人学习
							
							共22课时
23万人学习
							
							共28课时
33.9万人学习
							
							共89课时
125万人学习