Serialization: the process of converting Java objects into byte streams.
Deserialization: the process of converting a byte stream to a Java object.
Java objects need to be serialized when they need to be transferred on the network or stored in a file for persistence.
Implementation of serialization: the class implements the Serializable interface, which has no methods to implement. 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 as static and transient cannot be serialized. Static member variables are attributes that describe the class level, and transient represents temporary data
- Deserialization read the serialized objects in the same order
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, deserialization * @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); //De serialization ObjectInputStream 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 results:
Test serialization 618 TestSerializable [id=1, name=ConstXiong]
- Java self study guide
- Java Interview Questions Summary PC side browse [click here]
- Java knowledge map
- Java interview summary applet browse, scan QR code
All resources are summarized in the public address.