java对象序列化与反序列化

本文深入探讨了Java对象序列化的过程与注意事项,包括序列化接口使用、构造函数要求、成员变量序列化条件,以及序列化反序列化的具体操作流程。通过实例演示,帮助开发者理解如何在实际项目中灵活运用序列化技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java对象序列化可以将java对象以字节的形式存储起来,但是不存储类的方法,只存储对象的当前状态信息。序列化反序列化需要注意的几点:
1、需要序列化的java对象必须继承Serializable接口。
2、可序列化的类需要有不带参数的构造函数
3、当对象的成员变量是其他类B时,类B也需要继承Serializable接口
4、并不是所有的对象都可以进行序列化,如Thread、Socket对象不能序列化
序列化反序列化需要的流对象:
处理对象流:
java.io包有两个序列化对象的类。
ObjectOutputStream负责将对象写入字节流,
ObjectInputStream从字节流重构对象。
序列化:
File file = new File(path);
FileOutputStream fos = new FileOutputStream(file);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(myobject);
反序列化:
File file = new File(path);
FileIntputStream fos = new FileIntputStream(file);
ObjectInputStream ois=new ObjectInputStream(fos);
myobject=(MyObject)ois.readObject();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值