Home  >  Article  >  Java  >  What is serialization? A detailed introduction to serialization

What is serialization? A detailed introduction to serialization

PHP中文网
PHP中文网Original
2017-06-20 14:25:493053browse

1 Serialization

1. What is serialization?

Writing objects in memory to the hard disk is serialization, which is no different from general output, except that the output data is an object, not ordinary text.

2. The role of serialization

Because the storage of data in memory is temporary, if you need to save the object for a long time, you must Writing to the hard disk results in serialization.

3. Conditions for serialization

# For an object to be serialized, the class to which the object belongs must implement the Serializable interface. This interface It is an iconic interface without any fields or abstract methods. When the JVM encounters this interface, it will assign a serialized version number to the class.

4. When an object is serialized, the global variables in the object including private type variables will be written to the hard disk.

5. Fields that cannot be serialized:

  1. Static fields cannot be serialized, the value of a static variable It is the value in the current JVM, not the value set during serialization.

  2. #Fields modified by transient cannot be serialized.

6. Serialization operation:

OutputStream ops=new FileOuptStream(path);
ObjectOuptStream oos=new ObjectOutputStream(ops);
Object obj=new Ojbect();
oos.writeObject(obj);

2 Deserialization

1. What is deserialization

Deserialization is to write the data in the hard disk into the memory and obtain the data stored in object in the file.

2. Deserialization operation requirements

The order of deserialization must be consistent with the order of serialization.

3. Serialization version number

⑴ During serialization, a long number will be generated, called the serialization version number, and saved at the same time In the serialized file and the class file, compare the two

numbers during deserialization. If they are the same, the serialization is successful; if they are not the same, the deserialization cannot be performed.

⑵ The serialized version number is used to mark the version of the entity class. Once the entity class is

modified, if the serialized version number is not explicitly specified, the system will automatically generate it A new version number. If the two version numbers are different, they cannot be serialized. Generally, the serialization version number is explicitly set in the entity class that needs to be serialized.

⑶ Recompiling does not necessarily generate a new serialized version number. Only when the entity class changes will a new serialized version number be generated.

⑷Parsing process

# When deserializing, first compare the serialized version number in the serialized file and the class file to see if they are the same. If they are the same , indicating that the serialized file is generated by the current

class file and can be deserialized; not the same, indicating that it is not generated by the current class file, the version is inconsistent, and cannot be deserialized.

⑸Desequence operation:

InputStream is=new FileInputStream(path);
ObjectInputStream ois=new ObjectIputStream(is);
Object obj=ois.readObject();

The above is the detailed content of What is serialization? A detailed introduction to serialization. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn