public class DomainObject implements Serializable {
private static final long serialVersionUID = -6960820659912840745L;
private String objName;
/** 不参加序列化 */
private transient String scope;
public String getObjName() {
return objName;
}
public void setObjName(String objName) {
this.objName = objName;
}
public String getScope() {
return scope;
}
@Override
public String toString() {
return "DomainObject{" +
"objName='" + objName + '\'' +
", scope='" + scope + '\'' +
'}';
}
public void setScope(String scope) {
this.scope = scope;
}
public DomainObject(String objName, String scope) {
this.objName = objName;
this.scope = scope;
}
public static void main(String[] args) throws IOException, ClassNotFoundException {
DomainObject obj = new DomainObject("JavaObjetc", "JVM");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
/** 序列化 */
ObjectOutputStream outputStream = new ObjectOutputStream(baos);
outputStream.writeObject(obj);
/** 反序列化 */
ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
ObjectInputStream inputStream = new ObjectInputStream(bais);
DomainObject newObj = (DomainObject) inputStream.readObject();
System.out.println(newObj.toString());
}
}
transient 不参加序列化。
是否允许反序列化,取决于序列化 ID 是否一致。
为什么要序列化,反序列化?
当两个进程进行远程通信时,可以相互发送各种类型的数据,包括文本、图片、音频、视频等, 而这些数据都会以二进制序列的形式在网络上传送。
版权声明:本文为qq_35717240原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。