Serialization: The process of converting a Java object into a byte stream.

Deserialization: The process of converting byte streams into Java objects.

When a Java object needs to be transferred over the network or persisted to a file, it needs to be serialized.

Serialization implementation: The class implements the Serializable interface, which has no methods that need to be implemented. The Serializable interface is implemented to tell the JVM that objects of this class can be serialized.

Matters needing attention:

If a class can be serialized, its subclasses can also be serialized

Member variables declared static and transient cannot be serialized. Static member variables are attributes that describe the class level; transient represents temporary data

Deserialization Read serialized objects in the same order

The specific use

package constxiong.interview;

import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Serializable;

  • Test serialization, deserialize
  • @author ConstXiong
  • @date 2019-06-17 09:31:22

public class TestSerializable implements Serializable {

private static final long serialVersionUID = 5887391604554532906L;

private int id;

private String name;

public TestSerializable(int id, String name) { this.id = id; this.name = name; }

@Override public String toString() { return “TestSerializable [id=” + id + “, name=” + name + “]”; }

@SuppressWarnings(“resource”) public static void main(String[] args) throws IOException, ClassNotFoundException {// serialize ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(“TestSerializable.obj”)); Oos. WriteObject (” test serialization “); oos.writeObject(618); TestSerializable test = new TestSerializable(1, “ConstXiong”); oos.writeObject(test);

Ois = new ObjectInputStream(new FileInputStream(“TestSerializable. Obj “)); System.out.println((String)ois.readObject()); System.out.println((Integer)ois.readObject()); System.out.println((TestSerializable)ois.readObject()); }

}

Print result:

Test serialization

618

[id=1, name=ConstXiong] TestSerializable [id=1, name=ConstXiong