Home > Java > Javagetting Started > What does the transient keyword in java do?

What does the transient keyword in java do?

王林
Release: 2019-11-26 10:30:28
forward
3279 people have browsed it

What does the transient keyword in java do?

Function:

When serializing data, if you don’t want to serialize one of the attributes into a file, you need to use transient Modification, indicating that the attribute is a temporary attribute

Related java video tutorial:java free video tutorial

This is a student class:

public class Student implements Serializable {//注意:要想序列化,必须实现Serializable接口
 
    private String name;
    private Integer age;
    private transient String address;  //使用transient修饰
 
    public Student() {
    }
 
    public Student(String name, Integer age, String address) {
        this.name = name;
        this.age = age;
        this.address = address;
    }
    //Getter/Setter
}
Copy after login

When I serialize, I don’t plan to save the student’s address attribute. I only want to save the name and age attributes. I modify the adress attribute with the transient keyword and serialize it as follows:

public class TestStudent {
 
    public static void main(String[] args) throws IOException {
 
        List<Student> list = new ArrayList<>();
        Student s1 = new Student("Jack", 20, "北京");
        Student s2 = new Student("Rose", 21, "上海");
        Student s3 = new Student("Hoke", 22, "深圳");
        Student s4 = new Student("Mark", 23, "天津");
        Student s5 = new Student("Json", 24, "成都");
 
        list.add(s1);
        list.add(s2);
        list.add(s3);
        list.add(s4);
        list.add(s5);
 
        //将学生信息序列化到student.txt文件中
        File file = new File("student.txt");
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
        oos.writeObject(list);
 
    }
}
Copy after login

Proceed below Deserialize and verify the role of transient:

@Test
    public void test() throws IOException, ClassNotFoundException {
 
        ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("student.txt")));
 
        Object object = ois.readObject();
        if (object instanceof List) {
            List<Student> list = (List<Student>) object;
            list.forEach(System.out::println);
        }
    }
Copy after login

Result:

What does the transient keyword in java do?

You can see that the address attribute value in the output result is null. The value is not serialized;

java related article tutorial: java zero-based introduction

The above is the detailed content of What does the transient keyword in java do?. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:csdn.net
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template