What is java serialization? When is serialization required?

Serialization: the process of converting Java objects into byte streams. Deserialization: the process of converting a byte stream to a Java object. Ja...

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]


All resources are summarized in the public address.



10 November 2019, 10:07 | Views: 8230

Add new comment

For adding a comment, please log in
or create account

0 comments