JAVA动手编程,自各儿动手写写:Java序列化

自己动手写写:Java序列化

从以下几个方面来讨论这个问题

1、序列化是用来干什么的?

序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容就行流化。简而言之就是为了保存内存中的各种实例对象的状态,并且可以通过反序列化将实例对象的状态再读出来。

2、为什么需要序列化?

为了将对象转换为更加容易传输的格式,减少网络流量的开销。例如,可以序列化一个实例对象,然后使用Http通过Internet在客户端和服务端之间传输该对象,在另外一段,反序列化将从该流中重新构造对象。

3、什么情况下需要序列化?

内存中的实例对象状态保存到存储介质时。

内存中的实例对象需要在网络传输时。

4、Java中序列化的实现

Java中只需要一个类implements Serializable即可实现此类的实例对象的序列化。

通过ObjectOutputStream的writeObject方法来实现对象的序列化。通过ObjectInputStream的readObject方法类实现对象的反序列化。

请看下面的一个例子

public class Org

{

private String orgId;

private String orgName;

/**

* @return 返回 orgId

*/

public String getOrgId()

{

return orgId;

}

/**

* @param 对orgId进行赋值 */

public void setOrgId(String orgId)

{

this.orgId = orgId;

}

/**

* @return 返回 orgName

*/

public String getOrgName()

{

return orgName;

}

/**

* @param 对orgName进行赋值 */

public void setOrgName(String orgName)

{

this.orgName = orgName;

}

}

public class User implements Serializable

{

/**

* 注释内容

*/

private static final long serialVersionUID = -2069026676796654202L;

public static String s = "ssss";

private String userName;

private String password;

private Org org;

/**

* @return 返回 org

*/

public Org getOrg()

{

return org;

}

/**

* @param 对org进行赋值 */

public void setOrg(Org org)

{

this.org = org;

}

/**

* @return 返回 userName

*/

public String getUserName()

{

return userName;

}

/**

* @param 对userName进行赋值 */

public void setUserName(String userName)

{

this.userName = userName;

}

/**

* @return 返回 password

*/

public String getPassword()

{

return password;

}

/**

* @param 对password进行赋值 */

public void setPassword(String password)

{

this.password = password;

}

}

public class UserImpl extends User

{

/**

* 注释内容

*/

private static final long serialVersionUID = 418270522532375203L;

private String confimPassword;

/**

* @return 返回 confimPassword

*/

public String getConfimPassword()

{

return confimPassword;

}

/**

* @param 对confimPassword进行赋值 */

public void setConfimPassword(String confimPassword)

{

this.confimPassword = confimPassword;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值