JavaRush /ื‘ืœื•ื’ Java /Random-HE /ืœืžื” ืœื”ืฉืชืžืฉ ื‘-SerialVersionUID ื‘ืชื•ืš ืžื—ืœืงื” Serializable ื‘-J...
0xFF
ืจึธืžึธื”
ะ”ะพะฝะตั†ะบ

ืœืžื” ืœื”ืฉืชืžืฉ ื‘-SerialVersionUID ื‘ืชื•ืš ืžื—ืœืงื” Serializable ื‘-Java

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”
Serializationื•ืชืžื™ื“ SerialVersionUIDื ืฉืืจ ื‘ื’ื“ืจ ืชืขืœื•ืžื” ืœืžืคืชื—ื™ Java ืจื‘ื™ื. ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืื ื™ ืจื•ืื” ืฉืืœื•ืช ืœื’ื‘ื™ ืžื” ื–ื” SerialVersionUID, ืื• ืžื” ืงื•ืจื” ืื ืื ื™ ืœื ืžืฆื”ื™ืจ ื‘ื›ื™ืชื” SerialVersionUIDืฉืœื™ Serializable? ืžื“ื•ืข ืœื”ืฉืชืžืฉ ื‘-SerialVersionUID ื‘ืชื•ืš ืžื—ืœืงื” Serializable ื‘-Java - 1ืžืœื‘ื“ ื”ื™ื•ืชื• ืžื‘ืœื‘ืœ ื•ืฉื™ืžื•ืฉ ื ื“ื™ืจ, ืกื™ื‘ื” ื ื•ืกืคืช ืœืฉืืœื” ื–ื• ื”ื™ื ื”ืื–ื”ืจื” ื”ื—ืกืจื” ืฉืœ Eclipse IDE , SerialVersionUIDืœืžืฉืœ: " The Serializable class Customer ืœื ืžื›ืจื™ื– ืขืœ ืฉื“ื” ืกื˜ื˜ื™ ืกื•ืคื™ SerialVersionUIDSerializable ืžืกื•ื’ long " ื‘ืžืืžืจ ื–ื” ืชืœืžื“ื• ืœื ืจืง ืืช ื”ื™ืกื•ื“ื•ืช ืฉืœ ื’'ืื•ื•ื” ืืœื ื’ื ืืช ื”ืฉืคืขืชื” ืขืœ ืชื”ืœื™ืš ื”ื”ืžืฉื›ื” ื•ื”ื“ื”-ืกืจื™ืืœื™ื–ืฆื™ื”. ื›ืืฉืจ ืืชื” ืžื›ืจื™ื– ืขืœ ืžื—ืœืงื”, ื›ืžื• ืขืœ ื™ื“ื™ ื”ื˜ืžืขืช ืžืžืฉืง ืืกื™ืžื•ืŸ , ื–ืžืŸ ื”ืจื™ืฆื” ืฉืœ Java ืžืื—ืกืŸ ืžื•ืคืข ืฉืœ ืื•ืชื” ืžื—ืœืงื” ื‘ื“ื™ืกืง ื‘ืืžืฆืขื•ืช ืžื ื’ื ื•ืŸ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ ื”ืกื™ื“ืจื” ืืœื ืื ื›ืŸ ืชื’ื“ื™ืจ ืืช ื”ืชื”ืœื™ืš ืœืฉื™ืžื•ืฉ ื‘ืžืžืฉืง ืœื”ื—ืฆื ื” . ื‘ืžื”ืœืš ื”ืกื™ื“ืจื”, ื–ืžืŸ ื”ืจื™ืฆื” ืฉืœ Java ื™ื•ืฆืจ ืžืกืคืจ ื’ืจืกื” ืขื‘ื•ืจ ื”ืžื—ืœืงื”, ื›ืš ืฉื”ื™ื ืชื•ื›ืœ ืœื‘ื˜ืœ ืื•ืชื” ื‘ื”ืžืฉืš. ื‘-Java, ืžืกืคืจ ื’ืจืกื” ื–ื” ื™ื“ื•ืข ื‘ืฉื . ืื, ื‘ืžื”ืœืš ื”ื“ื”-ืกืจื™ืืœื™ื–ืฆื™ื”, ืื™ืŸ ื”ืชืืžื”, ื”ืชื”ืœื™ืš ื™ื™ืฆื ืขื ื—ืจื™ื’ื” ื‘ื–ืจื " " , ื•ื’ื ื™ื“ืคื™ืก ืืช ืฉื ื”ืžื—ืœืงื” ื•ืืช ื”ืฉื ื”ืžืชืื™ื . ืคืชืจื•ืŸ ืžื”ื™ืจ ืœืชื™ืงื•ืŸ ื‘ืขื™ื” ื–ื• ื”ื•ื ืœื”ืขืชื™ืง ื•ืœื”ื’ื“ื™ืจ ืื•ืชื” ื›ืงื‘ื•ืข ืกื•ื’ ื‘ื›ื™ืชื” ืฉืœืš. ื‘ืžืืžืจ ื–ื”, ื ืœืžื“ ืžื“ื•ืข ืขืœื™ื ื• ืœื”ืฉืชืžืฉ ื‘-Java ื•ื›ื™ืฆื“ ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ JDK ืฉืœ Serialver ื›ื“ื™ ืœื™ืฆื•ืจ ืžื–ื”ื” ื–ื”. ืื ืืชื” ื—ื“ืฉ ื‘ืชื—ื•ื ื”ืกื“ืจื•ืช, ืืชื” ื™ื›ื•ืœ ื’ื ืœืฆืคื•ืช ื‘-10 ืฉืืœื•ืช ื”ืจืื™ื•ืŸ ื”ืžื•ื‘ื™ืœื•ืช ื‘-Java Serialization ื›ื“ื™ ืœื”ืขืจื™ืš ืืช ื”ื™ื“ืข ืฉืœืš ื•ืœืžืฆื•ื ืคืขืจื™ื ื‘ื”ื‘ื ืชืš ืœืงืจื™ืื” ื ื•ืกืคืช. ื›ืžื• (ื‘ืžืงื‘ื™ืœ) ื• (ืจื™ื‘ื•ื™ ืคืชื™ืœื™ื), (ืกื™ื“ืจื”) ื”ื•ื ื ื•ืฉื ื ื•ืกืฃ ืฉืจืื•ื™ ืœืงืจื•ื ืื•ืชื• ืžืกืคืจ ืคืขืžื™ื. CustomerSerialVersionUIDSerialVersionUIDSerializablejava.io.SerializableSerialVersionUIDSerialVersionUIDInvalidClassExceptionmainjava.io.InvalidClassExceptionSerialVersionUIDSerialVersionUIDprivate static final longSerialVersionUIDConcurrencyMulti-threadingSerialization

ืœืžื” ืœื”ืฉืชืžืฉ ื‘-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 ื™ืขื™ืœ" ื™ืฉ ื›ืžื” ืคืกืงืื•ืช ื”ืžื“ื’ื™ืžื•ืช ืืช ื”ื™ืชืจื•ื ื•ืช ืฉืœ ื”ืคื•ืจืžื˜ ื”ืจื’ื™ืœ ื‘ืคื™ืจื•ื˜ ืจื‘. serialverSerialVersionUIDSerialVersionUID 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 โ€“showserial versionSerial version

ืกื™ื›ื•ื

ืขื›ืฉื™ื• ืื ื—ื ื• ื™ื•ื“ืขื™ื ืžื” ื–ื” SerialVersionUIDื•ืœืžื” ื—ืฉื•ื‘ ืœื”ื›ืจื™ื– ืขืœ ื–ื” ื‘-- Serializableclass, ื”ื’ื™ืข ื”ื–ืžืŸ ืœืกืงื•ืจ ื›ืžื” ืขื•ื‘ื“ื•ืช ื—ืฉื•ื‘ื•ืช ื”ืงืฉื•ืจื•ืช ืœ-Java SerialVersionUID.
  1. SerialVersionUIDืžืฉืžืฉ ืœืฆื™ื•ืŸ ื”ื’ืจืกื” ืฉืœ ื”ื ืชื•ื ื™ื ื‘ืกื™ื“ืจื”.

  2. ื›ืืฉืจ ืื ื—ื ื• ืœื ืžืฆื”ื™ืจื™ื SerialVersionUIDื‘ืžื—ืœืงื” ืฉืœื ื•, ื–ืžืŸ ื”ืจื™ืฆื” ืฉืœ Java ืขื•ืฉื” ืืช ื–ื” ืขื‘ื•ืจื ื•, ืื‘ืœ ืชื”ืœื™ืš ื–ื” ืจื’ื™ืฉ ืœืžื˜ื ื ืชื•ื ื™ื ืจื‘ื™ื ืฉืœ ื”ืžื—ืœืงื” ื›ื•ืœืœ ืžืกืคืจ ื”ืฉื“ื•ืช, ืกื•ื’ ื”ืฉื“ื•ืช, ืžืชืงื ื™ ื’ื™ืฉื” ืœืฉื“ื”, ืžืžืฉืงื™ื ืฉืžื™ื•ืฉืžื™ื ื‘ืžื—ืœืงื” , ื•ื›ื•' ืืชื” ื™ื›ื•ืœ ืœืžืฆื•ื ืืช ื”ืžื™ื“ืข ื”ืžื“ื•ื™ืง ื‘ืชื™ืขื•ื“ ื”ืกื“ืจืช ืžืื•ืจืงืœ.

  3. ืžื•ืžืœืฅ ืœื”ื›ืจื™ื– ืขืœ SerialVersionUID ื›ืžืฉืชื ื” ืกื•ืคื™ ืืจื•ืš ืกื˜ื˜ื™ ืคืจื˜ื™ ื›ื“ื™ ืœื”ื™ืžื ืข ืžืžื ื’ื ื•ืŸ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ. ื—ืœืง ืžื”-IDEs, ื›ื’ื•ืŸ Eclipse , ืžื•ืฆื™ืื™ื ื’ื ืื–ื”ืจื•ืช ืื ืฉื•ื›ื—ื™ื ื–ืืช, ืœื“ื•ื’ืžื”: "ื”ืžื—ืœืงื” ื”-Serializable Customer ืœื ืžืฆื”ื™ืจื” ืขืœ ืฉื“ื” ืกื˜ื˜ื™ ืกื•ืคื™ SerialVersionUID ืžืกื•ื’ ืืจื•ืš." . ืœืžืจื•ืช ืฉืืชื” ื™ื›ื•ืœ ืœื‘ื˜ืœ ืื–ื”ืจื” ื–ื• ืขืœ ื™ื“ื™ ืžืขื‘ืจ ืืœ ื—ืœื•ืŸ > ื”ืขื“ืคื•ืช > Java > ืžื”ื“ืจ > ืฉื’ื™ืื•ืช/ืื–ื”ืจื•ืช > ื‘ืขื™ื•ืช ืชื›ื ื•ืช ืืคืฉืจื™ื•ืช, ืื ื™ ืžืฆื™ืข ืœื ืœืขืฉื•ืช ื–ืืช. ืจืง ื›ืืฉืจ ืœื ื ื“ืจืฉ ืฉื—ื–ื•ืจ ื ืชื•ื ื™ื, ืื ื™ ื™ื›ื•ืœ ืœื”ื™ื•ืช ืœื ื–ื”ื™ืจ ืœื’ื‘ื™ ื–ื”. ื›ืš ื ืจืื™ืช ื”ืฉื’ื™ืื” ื”ื–ื• ื‘-Eclipse IDE, ื›ืœ ืžื” ืฉืืชื” ืฆืจื™ืš ืœืขืฉื•ืช ื”ื•ื ืœืงื‘ืœ ืืช ื”ื”ื—ืœื˜ื” ื”ืžื”ื™ืจื” ื”ืจืืฉื•ื ื”. ืžื“ื•ืข ืœื”ืฉืชืžืฉ ื‘-SerialVersionUID ื‘ืชื•ืš ืžื—ืœืงื” Serializable ื‘-Java - 2

  4. ืืชื” ื™ื›ื•ืœ ื’ื ืœื”ืฉืชืžืฉ ื‘ื›ืœื™ ื”ืฉื™ืจื•ืช serialver ืžื”-JDK ื›ื“ื™ ืœื™ืฆื•ืจ ื’ืจืกื” ืกื“ืจืชื™ืช ืขื‘ื•ืจ ืžื—ืœืงื•ืช ื‘-Java. ืœื›ืœื™ ื”ืฉื™ืจื•ืช ื™ืฉ ื’ื GUI, ื”ืžื•ืคืขืœ ื‘ืขืช ื”ืขื‘ืจืช ื”ืคืจืžื˜ืจ - show.

  5. ื”ืฉื™ื˜ื” ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ื‘ืกืจื™ืืœื™ื–ืฆื™ื” ื”ื™ื ืœื”ืฆื”ื™ืจ ื‘ืžืคื•ืจืฉ SerialVersionUID, ื›ื“ื™ ืœืžื ื•ืข ื‘ืขื™ื•ืช ื›ืœืฉื”ืŸ ืขื ื“ื”-ืกืจื™ืืœื™ื–ืฆื™ื”, ื‘ืžื™ื•ื—ื“ ืื ืืชื” ืขื•ื‘ื“ ืขื ื™ื™ืฉื•ื ืฉืจืช-ืœืงื•ื— ื”ืžืกืชืžืš ืขืœ ื ืชื•ื ื™ื ืžืกื•ื“ืจื™ื, ื›ื’ื•ืŸ RMI.
ื”ื›ืœ ืงืฉื•ืจ SerialVersionUIDื‘ื’'ืื•ื•ื”. ืขื›ืฉื™ื• ืื ื—ื ื• ื™ื•ื“ืขื™ื ืœืžื” ื—ืฉื•ื‘ ืœื”ืฆื”ื™ืจ ื ื›ื•ืŸ SerialVersionUIDื‘ื›ื™ืชื”. ืืชื” ื™ื›ื•ืœ ืœื”ื•ื“ื•ืช ืœ-IDE ืฉืœืš ืขืœ ื”ืชื–ื›ื•ืจืช ื”ื–ื•, ืฉืขืœื•ืœื” ืœืฉื‘ื•ืจ ืืช ื”ื“ื”-ืกื™ืจื™ืืœื™ื–ืฆื™ื” ืฉืœ ื”ื›ื™ืชื” ืฉืœืš. ืื ืืชื” ืจื•ืฆื” ืœืงืจื•ื ืขื•ื“ ืขืœ ืกื“ืจื” ื•ืžื•ืฉื’ื™ื ืงืฉื•ืจื™ื, ืืชื” ื™ื›ื•ืœ ื’ื ืœื‘ื“ื•ืง ืืช ื”ืžืืžืจื™ื ื”ืžื“ื”ื™ืžื™ื ื”ืืœื”. ืžืงื•ืจื™ ื›ืืŸ
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION