diff a/src/java.base/share/classes/java/io/Serializable.java b/src/java.base/share/classes/java/io/Serializable.java --- a/src/java.base/share/classes/java/io/Serializable.java +++ b/src/java.base/share/classes/java/io/Serializable.java @@ -141,11 +141,20 @@ * * Record classes can implement {@code Serializable} and receive treatment defined * by the * Java Object Serialization Specification, Section 1.13, * "Serialization of Records". Any declarations of the special - * handling methods discussed above are ignored for record types.
+ * handling methods discussed above, except {@code writeReplace}, + * are ignored for record types.
+ * + * Value classes can implement {@code Serializble} and receive the treatment defined + * by the + * Java Object Serialization Specification, Section 1.14, + * "Serialization of Value Objects". Any declarations of the special + * handling methods discussed above, except {@code writeReplace}, + * are ignored for value classes. Value classes implementing {@link Externalizable} + * and not using {@code writeReplace} are not supported.
* * The serialization runtime associates with each serializable class a version * number, called a serialVersionUID, which is used during deserialization to * verify that the sender and receiver of a serialized object have loaded * classes for that object that are compatible with respect to serialization.