Serialization in Java converts an object’s state into a byte stream; deserialization is the reverse process. Another way, serialization is converting a Java object into a static stream (sequence) of bytes that we can then preserve in a database or send over the internet. Deserialization is recreating the actual Java object in memory using the byte stream. This means is utilized to keep an object alive.
Before we go into serialization details, let’s look at a real-world example.
Assume you’re on the phone with a buddy via a cellular network. Your voice can be heard by a friend who is thousands of miles distant. You may also be aware that your voice is translated into electrical signals and subsequently transmitted via radio signals to a mobile tower. The tower later channels the electrical signal to the precise phone number you are connected with.
Your voice is converted many times before it reaches your companion on the other side. Similarly, when moving from one Java Virtual Machine to another, Java objects require serialization and deserialization.
The JVM grants the class that implements the Serializable Interface extra capabilities.
A class called “ObjectOutputStream” has a method called “writeObject.” This method is in charge of turning an item into a Byte stream. The class “ObjectInputStream” has a method called readObject (). This method turns a byte stream into a string.
Serializable is an interface that allows data to be serialized (has no data member and method). It’s used to “mark” Java classes so that their objects can have specific capabilities.
The class whose object has to be persisted must implement the Serializable interface.
The java.io package is implemented by the String class and all wrapper classes.
By default, the interface is serializable.
For writing objects into streams, this class is required. Only classes that implement the Serializable interface can be used as arguments in this class’s methods. The object is transformed into a byte stream using the methods in this class.
Let’s have a look at the constructor function of this class-
This function Object() creates a byte stream that writes to an Object stream.
Now let us glance at the methods inside this class. This class mainly houses three methods.
This class aims to perform the exact opposite of what the ObjectOutputStream class accomplished. Instead, it turns the byte stream into objects that can be deserialized.
Let’s have look at the constructor function of this class-
This constructor is crucial because it produces an ObjectInputStream, which reads from the InputStream.
👉Core Java Certification Training
Let’s move into how to serialize an object now that you know what serialization in Java is and all the important characteristics. For serialization, we have to use the ObjectOutputStream class’s writeObject() function, and for deserialization, the InputObjectStream class’s readObject() method is used.
1. The writeObject() method has the following syntax:
IO Exception is thrown by public final void writeObject(Object o).
2. The readObject() method has the following syntax:
final public presentation IOException, ClassNotFoundException is thrown by readObject().
To understand how to serialize an object in Java, consider the following example.
The Java platform offers a default method for the serialization of serializable objects. A (Java) class is a collection of instructions that describes how to do something.
👉Top 20 Basic Java Interview Questions for SDET
Serialization has a lot of benefits. Some of its primary usefulness is as follows:
Some important considerations to make during the Serialization of an object in Java
There are a few prerequisites for serializing an object. These are the conditions and considerations to assume when utilizing Java serialization.
👉Top 10 Java Programming Interview Questions for SDET
👉Java and Eclipse Installation Setup Guide & Tutorial
Hence serialization in Java means transforming a Java object into a stream of bytes. When the end-user receives this stream of bytes, it is transformed into an object, which can be easily transported from one JVM to another. It’s worth noting that the byte stream is platform-agnostic. You can change a stream of bytes into an object and run it in any context once you have it.
INQUIRY
By tapping continuing, you agree to our Privacy Policy and Terms & Conditions
SkillAhead Solutions
Gurgaon
USA
1603, Capitol Avenue, Suite 413A, 2659, Cheyenne, WY 82001, USA
`Copyright © DevLabs Alliance. All rights Reserved`
|
Refund & Reschedule Policy
Privacy Policy
Terms of Use