java的序列化

1.序列化是干什么的?

       序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。


2.序列化的使用范围

    1)套接字在网络上传送对象的时候

    2)通过RMI传输对象的时候

    3)想把内存中的对象状态保存到一个文件中或者数据库中的时候


3.序列化具体序列的是什么

     序列化其实是把对象中的实体变量保存起来,以用来传递,而对于方法则没有进行序列化。


4.序列化的具体过程

     其实想要序列化一个类是比较简单的,只要实现Serializable接口就可以了。其他的只是跟普通的类一样。

     下面给个例子。

import java.io.Serializable;

public class MsgDao implements Serializable {

	private static final long serialVersionUID = 1L;
	public MsgDao() {

	}
	public MsgDao(String name, String age) {
		this.name = name;
		this.age = age;
	}
	public String name;
	public String age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
}

上面的代码就是对MsgDao这个类进行了序列化操作。


5.序列化的应用

这里就要提到数据流,ObjectInputStream,ObjectOutputStream。用到这两个数据流必须要经过序列化处理才可以。

当然在网络通信中也是非常有用的,比如说socket通讯中用object传递数据就需要用到序列化,在socket通讯中在定义object数据流的时候顺序是非常重要的,要不然会阻塞掉,没有任何反应。


在socket的server端定义object数据流的时候的顺序为

ObjectInputStream ois = new ObjectInputStream(is);
ObjectOutputStream oos = new ObjectOutputStream(os);


在client端定义object数据流的时候的顺序为

ObjectOutputStream oos = new ObjectOutputStream(os);
ObjectInputStream ois = new ObjectInputStream(is);



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值