public final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. */ private final char value[];
/** Cache the hash code for the string */ private int hash; // Default to 0
/** use serialVersionUID from JDK 1.0.2 for interoperability */ private static final long serialVersionUID = -6849794470754667710L;
public class User implements Serializable { private String name; private Integer age; public String getName() { return name; }
public void setName(String name) { this.name = name; }
public Integer getAge() { return age; }
public void setAge(Integer age) { this.age = age; }
@Override public String toString() { return"User{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
測(cè)試類(lèi)
先進(jìn)行序列化, 再進(jìn)行反序列化.
public class SerializableTest { private static void serialize(User user) throws Exception { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("D:\\111.txt"))); oos.writeObject(user); oos.close(); }
private static User deserialize() throws Exception{ ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("D:\\111.txt"))); return (User) ois.readObject(); }
public static void main(String[] args) throws Exception { User user = new User(); user.setName("tyshawn"); user.setAge(18); System.out.println("序列化前的結(jié)果: " + user);
serialize(user); User dUser = deserialize(); System.out.println("反序列化后的結(jié)果: "+ dUser); } }
public class User implements Serializable { private String name; private Integer age; private String sex; public String getName() { return name; }
public void setName(String name) { this.name = name; }
public Integer getAge() { return age; }
public void setAge(Integer age) { this.age = age; }
public String getSex() { return sex; }
public void setSex(String sex) { this.sex = sex; }
@Override public String toString() { return"User{" + "name='" + name + '\'' + ", age=" + age + ", sex='" + sex + '\'' + '}'; } }
再注釋掉序列化代碼執(zhí)行反序列化代碼,最后結(jié)果如下:
“
序列化前的結(jié)果: User{name='tyshawn', age=18}
Exception in thread "main" java.io.InvalidClassException: org.tyshawn.SerializeAndDeserialize.User; local class incompatible: stream classdesc serialVersionUID = 1035612825366363028, local class serialVersionUID = -1830850955895931978報(bào)錯(cuò)結(jié)果為序列化與反序列化產(chǎn)生的serialVersionUID不一致。