serialization can be used to save an object from one JVM and load it into another. For example, you can serialize it, shut down your jvm/computer, come back a week later, deserialize it, and you have the object in the same state.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
Note that serialization is well-suited for temporarily storing objects, or for transferring objects over a network, but it is not very good for long-term storage. The problem is that there is a tight coupling between your classes and the serialized objects. If you change something in your class (you add or rename a member variable, for example), then you will not be able to deserialize objects from old files with the new version of the class.
Suppose that you wrote a program which saves data by serializing objects in a file. Clients start to use the program. Someday you create a newer version of the program, in which you changed the classes that hold the data. Clients will not be able to read their saved files with the newer version, because the old serialized files have become incompatible because you changed the classes. So, if you write such a program, don't use serialization; use a well-defined (preferrably standard) file format instead.