The example of this article shares the serialization and deserialization of java objects for your reference. The specific content is as follows
1. What is serialization
Convert the object into a byte stream and save it , such as saving it to a file and restoring the object later. This mechanism is called object serialization. (Additional sentence: Saving objects to a permanent storage device is called persistence)
2. How to implement serialization
You need to implement the Serializable interface. If the java object implements this interface, it means that the object of this class is is serializable.
3. Notes on serialization
(1) When an object is serialized, only the non-static member variables of the object can be saved, but methods and static member variables cannot be saved.
(2) Object A refers to object B, object A is serialized, and B is also serialized.
(3) If a serializable object contains a reference to a non-serializable object, then the entire serialization operation will fail, and a NotSerializableException will be thrown if it fails. Therefore, both the object itself and the reference object must implement the Serializable interface. Can be serialized.
(4) When using transient, if the member variable or reference is marked as transient, the object can still be serialized, but it will not be serialized into the file.
4. Code
public class Person implements Serializable { private String name; private transient int age; public Person(String name, int age) { super(); this.name = name; this.age = age; } public String toString() { return this.name + "-" + this.age; } }
public class SerializableClient { public static void main(String[] args) throws Exception { Person p1 = new Person("zhangsan", 5); Person p2 = new Person("lisi", 100); //序列化 FileOutputStream fos = new FileOutputStream("person.txt"); ObjectOutputStream oos = new ObjectOutputStream(fos); oos.writeObject(p1); oos.writeObject(p2); System.out.println("---------"); //反序列化 FileInputStream fis = new FileInputStream("person.txt"); ObjectInputStream ois = new ObjectInputStream(fis); for(int i = 0; i < 2; i++) { Person tempPerson = (Person)ois.readObject(); System.out.println(tempPerson); } } }
Output result:
---------
zhangsan-0
lisi-0
5. More detailed Granular control of serialization and deserialization