Java serialization is the process of converting Java objects into byte streams. When Java objects need to be transmitted over the network or persisted in files, Java objects need to be serialized.
Serialization implementation: The class implements the Serializable interface. This interface has no methods that need to be implemented. Implementing the Serializable interface is to tell the jvm that objects of this class can be serialized. (Recommended learning: java course )
Note:
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
The order in which serialized objects are read during deserialization must be consistent
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; /** * 测试序列化,反序列化 * @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 { //序列化 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("TestSerializable.obj")); oos.writeObject("测试序列化"); oos.writeObject(618); TestSerializable test = new TestSerializable(1, "ConstXiong"); oos.writeObject(test); //反序列化 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 result:
测试序列化 618 TestSerializable [id=1, name=ConstXiong]
The above is the detailed content of What is java serialization. For more information, please follow other related articles on the PHP Chinese website!