java 反序列化_Java-序列化-反序列化

Thanks

Java中的序列化

对象是存储在内存中,但如果我们想把对象持久化存到硬盘上该怎么做呢?在Java中,可以使用序列化:Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。

简单例子

Java中必须实现接口Serializable才能够被序列化,而Serializable接口没有方法,更像是个标记。 有了这个标记的Class就能被序列化机制处理。

简单定义一个需要序列化的类:

public class Person implements Serializable{

public int height = 180;

private int age = 21;

}

然后进行序列化

public class Main {

public static void main(String args[]) throws IOException {

FileOutputStream fos = new FileOutputStream("temp.out");

ObjectOutputStream oos = new ObjectOutputStream(fos);

Person ts = new Person();

oos.writeObject(ts);

oos.flush();

oos.close();

}

}

序列化后保存到一份文件里面,文件内容如下,这些内容是有特定含义,

aced 0005 7372 0022 736f 7572 6365 436f

6465 2e74 6573 7453 6572 6961 6c69 7a61

626c 652e 5065 7273 6f6e e400 6d6d fbe4

589a 0200 0249 0003 6167 6549 0006 6865

6967 6874 7870 0000 0015 0000 00b4

一堆的16进制,保存的就是对象的属性了,如果我们再反序列话出来,就得到原来的对象。

public static void main(String args[]) throws IOException, ClassNotFoundException {

FileInputStream fis = new FileInputStream("temp.out");

ObjectInputStream oin = new ObjectInputStream(fis);

Person person = (Person) oin.readObject();

S

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值