Serialization
ืืชืืื
SerialVersionUID
ื ืฉืืจ ืืืืจ ืชืขืืืื ืืืคืชืื Java ืจืืื. ืืขืชืื ืงืจืืืืช ืื ื ืจืืื ืฉืืืืช ืืืื ืื ืื
SerialVersionUID
, ืื ืื ืงืืจื ืื ืื ื ืื ืืฆืืืจ ืืืืชื
SerialVersionUID
ืฉืื
Serializable
?
ืืืื ืืืืชื ืืืืื ืืฉืืืืฉ ื ืืืจ, ืกืืื ื ืืกืคืช ืืฉืืื ืื ืืื ืืืืืจื ืืืกืจื ืฉื Eclipse IDE ,
SerialVersionUID
ืืืฉื: "
The Serializable class Customer ืื ืืืจืื ืขื ืฉืื ืกืืื ืกืืคื SerialVersionUIDSerializable
ืืกืื long " ืืืืืจ ืื ืชืืืื ืื ืจืง ืืช ืืืกืืืืช ืฉื ื'ืืืื ืืื ืื ืืช ืืฉืคืขืชื ืขื ืชืืืื ืืืืฉืื ืืืื-ืกืจืืืืืืฆืื. ืืืฉืจ ืืชื ืืืจืื ืขื ืืืืงื, ืืื ืขื ืืื ืืืืขืช ืืืฉืง ืืกืืืื , ืืื ืืจืืฆื ืฉื Java ืืืืกื ืืืคืข ืฉื ืืืชื ืืืืงื ืืืืกืง ืืืืฆืขืืช ืื ืื ืื ืืจืืจืช ืืืืื ืฉื ืืกืืืจื ืืื ืื ืื ืชืืืืจ ืืช ืืชืืืื ืืฉืืืืฉ
ืืืืฉืง ืืืืฆื ื . ืืืืื ืืกืืืจื, ืืื ืืจืืฆื ืฉื Java ืืืฆืจ ืืกืคืจ ืืจืกื ืขืืืจ ืืืืืงื, ืื ืฉืืื ืชืืื ืืืื ืืืชื ืืืืฉื. ื-Java, ืืกืคืจ ืืจืกื ืื ืืืืข ืืฉื . ืื, ืืืืื ืืื-ืกืจืืืืืืฆืื, ืืื ืืชืืื, ืืชืืืื ืืืฆื ืขื ืืจืืื ืืืจื " " , ืืื ืืืคืืก ืืช ืฉื ืืืืืงื ืืืช ืืฉื ืืืชืืื . ืคืชืจืื ืืืืจ ืืชืืงืื ืืขืื ืื ืืื ืืืขืชืืง ืืืืืืืจ ืืืชื ืืงืืืข ืกืื ืืืืชื ืฉืื. ืืืืืจ ืื, ื ืืื ืืืืข ืขืืื ื ืืืฉืชืืฉ ื-Java ืืืืฆื ืืืฉืชืืฉ ืืืื JDK ืฉื Serialver ืืื ืืืฆืืจ ืืืื ืื. ืื ืืชื ืืืฉ ืืชืืื ืืกืืจืืช, ืืชื ืืืื ืื ืืฆืคืืช
ื-10 ืฉืืืืช ืืจืืืื ืืืืืืืืช ื-Java Serialization ืืื ืืืขืจืื ืืช ืืืืข ืฉืื ืืืืฆืื ืคืขืจืื ืืืื ืชื ืืงืจืืื ื ืืกืคืช. ืืื (ืืืงืืื) ื (ืจืืืื ืคืชืืืื), (ืกืืืจื) ืืื ื ืืฉื ื ืืกืฃ ืฉืจืืื ืืงืจืื ืืืชื ืืกืคืจ ืคืขืืื.
Customer
SerialVersionUID
SerialVersionUID
Serializable
java.io.Serializable
SerialVersionUID
SerialVersionUID
InvalidClassException
main
java.io.InvalidClassException
SerialVersionUID
SerialVersionUID
private
static
final
long
SerialVersionUID
Concurrency
Multi-threading
Serialization
ืืื ืืืฉืชืืฉ ื-SerialVersionUID ื-Java
ืืคื ืฉืืืจืชื, ืืืฉืจ ืื ืืืืจื ื ืขืจื
SerialVersionUID
ืืื
static
final
long
ืืืืชื ืฉืื ื, ืื ืื ืื ืืืืฉืื ืืขืฉื ืืืช ืขืืืจื ื. ืื ืื ืื ืื ืจืืืฉ ืืคืจืืื ืจืืื, ืืืื ืืฉืืืช ืฉื ืืืืืงื ืฉืื, ืืฉื ืืช ืืืืฉื ืฉืืื, ืืืืฉืงืื ืฉืืื ืืืืฉื, ืืืคืืื ืืืฉืืื ืืืืจ ืฉืื ืื; ืื ืฉืื ืื ืืืืืงื ืื ืฉืืืืฉ ืืืืืจ ืืืจ ืขืฉืืืื ืืื ืื ืชืืฆืื ืฉืื ื,
SerialVersionUID
ืฉืืกืืคื ืฉื ืืืจ ืชืืื ืืชืืฆืื ืฉืื ื. ืืขืฆืืจ ืืช ืืืขืื ื ืืืืฉ ืฉื ืื ืชืื ืื ืืกืืืจื. ืื ืืกืืื ืืืกืชืื ืขื ืื ืื ืื ืืืืฉืื ืฉื Java ืืื ืืืฆืืจ ืืช ืืืืื ืืื, ืืื ืืกืืื ืฉืืืืืฅ ืืืืืืจ ืืืชื ืืืคืืจืฉ
ืืืืืงื ื-SerializableSerialVersionUID
ืฉืื . ืื ื ืืืืืฅ ืืืื ืืงืจืื ืืช ื-Java Classic -
Joshua Bloch "Effective Java" ืืื ืืืืื ืืช ืืกืืจืช Java ืืืช ืืืขืืืช ืฉื ืืืคืื ืื ื ืืื. ืืื, ื-JDK ืืกืคืง ืื ืืื , ืืืืืงื ืืกืคืจืืืช
bin ืฉื ืกืคืจืืืช
JAVA_HOME , ืืืืฉื ืฉืื,
C:\Program Files\Java\jdk1.6.0_26\bin\serialver.exe , ืฉื ืืชื ืืืฉืชืืฉ ืื ืืื ืืืฆืืจ ืืืืชืืช ืืฉื ืืช. ืื ืืืื ืฉืืืืฉื ืืืงืจื ืฉืืืฆืขืช ืฉืื ืืืื ืืืืชื ืฉืื ืฉืืคืจืช ืืช ืืืกืืจื ืืืืคืืืงืฆืื ืฉืื ืื ืืกืืืืช ืืืขืื ืืืืฉ ืืืคืขืื ืืกืืืจื. ืืชื ืืืื ืืงืืืช ืืืฉืชืืฉ ืืืื ืืฉืืจืืช ืืื ืืื ืืืฆืืจ ืืืคืขืื ืืฉื ืื, ืืืืืจ ืืื ืืืฉืชืืฉ ืื ืืืืคื ืืคืืจืฉ ืขื ืืื ืืืจืื ืขื ืืฉืื ื-
private static final long . ืืื, ืืืืืฅ ืืืื ืืืขืื ืืืฆืืขืื ืืืืืื ืืืฉืชืืฉ ืืคืืจืื ืืืื ืืจื ืืจืืื ืืฆืืจื ืกืืืจื; ืฉืื, ื-"Java ืืขืื" ืืฉ ืืื ืคืกืงืืืช ืืืืืืืืช ืืช ืืืชืจืื ืืช ืฉื ืืคืืจืื ืืจืืื ืืคืืจืื ืจื.
serialver
SerialVersionUID
SerialVersionUID
SerialVersionUID
ืืืฆื ืืืฉืชืืฉ ืืืื ืืฉืืจืืช Serialver JDK ืืื ืืืฆืืจ SerialVersionUID
ืืชื ืืืื ืืืฉืชืืฉ
serialver
ืืื ืืืฆืืจ
SerialVersionUID
ืขืืืจ ืฉืืขืืจืื. ืื ืฉืืืืฉื ืืืืืื ืืคืืชืื ืืืืงืืช; ืืื ืืฉืืจืืช ืืืืจ
SerialVersionUID
ืืคืืจืื ืงื ืืืขืชืงื. ืืชื ืืืื ืืืฉืชืืฉ
serialver
ืืืื ืืฉืืจืืช JDK ืืคื ืฉืืืฆื ืืืืืื:
$ serialver
use: serialver [-classpath classpath] [-show] [classname...]
$ serialver -classpath . Hello
Class Hello is not Serializable.
$ serialver -classpath . Hello
Hello: static final long SerialVersionUID = -4862926644813433707L;
ืืชื ืืืื ืื ืืืฉืชืืฉ ืืืื ืืฉืืจืืช
serialver
ืืคืงืืื , ืื ืืคืชื ืืคืงื ืฉืืืงื ืืช ืฉื
GUI
ืืืืชื ืืืื ืืืฆืื ืืืชื .
$ serialver โshow
serial version
Serial version
ืกืืืื
ืขืืฉืื ืื ืื ื ืืืืขืื ืื ืื
SerialVersionUID
ืืืื ืืฉืื ืืืืจืื ืขื ืื ื--
Serializable
class, ืืืืข ืืืื ืืกืงืืจ ืืื ืขืืืืืช ืืฉืืืืช ืืงืฉืืจืืช ื-Java SerialVersionUID.
SerialVersionUID
ืืฉืืฉ ืืฆืืื ืืืจืกื ืฉื ืื ืชืื ืื ืืกืืืจื.
- ืืืฉืจ ืื ืื ื ืื ืืฆืืืจืื
SerialVersionUID
ืืืืืงื ืฉืื ื, ืืื ืืจืืฆื ืฉื Java ืขืืฉื ืืช ืื ืขืืืจื ื, ืืื ืชืืืื ืื ืจืืืฉ ืืืื ื ืชืื ืื ืจืืื ืฉื ืืืืืงื ืืืื ืืกืคืจ ืืฉืืืช, ืกืื ืืฉืืืช, ืืชืงื ื ืืืฉื ืืฉืื, ืืืฉืงืื ืฉืืืืฉืืื ืืืืืงื , ืืื' ืืชื ืืืื ืืืฆืื ืืช ืืืืืข ืืืืืืง ืืชืืขืื ืืกืืจืช ืืืืจืงื.
- ืืืืืฅ ืืืืจืื ืขื SerialVersionUID ืืืฉืชื ื ืกืืคื ืืจืื ืกืืื ืคืจืื ืืื ืืืืื ืข ืืื ืื ืื ืืจืืจืช ืืืืื. ืืืง ืื-IDEs, ืืืื Eclipse , ืืืฆืืืื ืื ืืืืจืืช ืื ืฉืืืืื ืืืช, ืืืืืื: "ืืืืืงื ื-Serializable Customer ืื ืืฆืืืจื ืขื ืฉืื ืกืืื ืกืืคื SerialVersionUID ืืกืื ืืจืื." . ืืืจืืช ืฉืืชื ืืืื ืืืื ืืืืจื ืื ืขื ืืื ืืขืืจ ืื ืืืื > ืืขืืคืืช > Java > ืืืืจ > ืฉืืืืืช/ืืืืจืืช > ืืขืืืช ืชืื ืืช ืืคืฉืจืืืช, ืื ื ืืฆืืข ืื ืืขืฉืืช ืืืช. ืจืง ืืืฉืจ ืื ื ืืจืฉ ืฉืืืืจ ื ืชืื ืื, ืื ื ืืืื ืืืืืช ืื ืืืืจ ืืืื ืื. ืื ื ืจืืืช ืืฉืืืื ืืื ื-Eclipse IDE, ืื ืื ืฉืืชื ืฆืจืื ืืขืฉืืช ืืื ืืงืื ืืช ืืืืืื ืืืืืจื ืืจืืฉืื ื.
- ืืชื ืืืื ืื ืืืฉืชืืฉ ืืืื ืืฉืืจืืช serialver ืื-JDK ืืื ืืืฆืืจ ืืจืกื ืกืืจืชืืช ืขืืืจ ืืืืงืืช ื-Java. ืืืื ืืฉืืจืืช ืืฉ ืื GUI, ืืืืคืขื ืืขืช ืืขืืจืช ืืคืจืืืจ -
show
.
- ืืฉืืื ืืืืื ืืืืชืจ ืืกืจืืืืืืฆืื ืืื ืืืฆืืืจ ืืืคืืจืฉ
SerialVersionUID
, ืืื ืืื ืืข ืืขืืืช ืืืฉืื ืขื ืื-ืกืจืืืืืืฆืื, ืืืืืื ืื ืืชื ืขืืื ืขื ืืืฉืื ืฉืจืช-ืืงืื ืืืกืชืื ืขื ื ืชืื ืื ืืกืืืจืื, ืืืื RMI.
ืืื ืงืฉืืจ
SerialVersionUID
ืื'ืืืื. ืขืืฉืื ืื ืื ื ืืืืขืื ืืื ืืฉืื ืืืฆืืืจ ื ืืื
SerialVersionUID
ืืืืชื. ืืชื ืืืื ืืืืืืช ื-IDE ืฉืื ืขื ืืชืืืืจืช ืืื, ืฉืขืืืื ืืฉืืืจ ืืช ืืื-ืกืืจืืืืืืฆืื ืฉื ืืืืชื ืฉืื. ืื ืืชื ืจืืฆื ืืงืจืื ืขืื ืขื ืกืืจื ืืืืฉืืื ืงืฉืืจืื, ืืชื ืืืื ืื ืืืืืง ืืช ืืืืืจืื ืืืืืืืื ืืืื.
ืืงืืจื
ืืื
GO TO FULL VERSION