Serialversionuid Effect:
Serialization preserves the uniqueness of the object in order to maintain version compatibility, that is, deserialization while the version is being upgraded.
There are two ways to build:
One is the default 1L, for example: private static final long serialversionuid = 1L;
One is to generate a 64-bit hash field based on the class name, interface name, member method, and property, for example:
Private static final long serialversionuid = XXXXL;
When you implement a class with a serializable interface, if there is no definition serialversionuid,eclipse will provide this
The hint function tells you to define. In Eclipse, click the warning icon in the class and Eclipse will
Automatically given two ways of generating. If you do not want to define it, the settings in eclipse also
You can turn it off, set the following:
Window ==> Preferences ==> Java ==> Compiler ==> error/warnings ==>
Potential programming problems
Change the warning of the serializable class without serialversionuid to ignore.
If you do not consider the compatibility issue, you turn it off, but this function is good, as long as any category implemented serializable this interface, if not joined Serialversionuid,eclipse will give you warning hint, This serialversionuid to make the category serializable backwards compatible.
If your class serialized on the hard drive, but then you change the category field (increase or decrease or rename), when you deserialize, it will appear exception, which will cause incompatibilities.
But when Serialversionuid is the same, it deserialize the different field with the default value of type, which avoids incompatibility issues.
Reprinted from: http://www.blogjava.net/invisibletank/archive/2007/11/15/160684.html
Explanation of Serialversionuid in Java