序列化就是将对象转化为二进制存储到硬盘的过程
就是把一个内存中的对象保存到硬盘上,比如很大的Map,你自己创建的很大的类的对象,etc
[quote=引用 3楼小灰狼 的回复:]把一个 Java 对象转换成字节,是序列化 把之前转换为字节的数据,再还原成为一个 Java 对象,是反序列化 用文字再怎么描述,都是抽象的,楼主找一段代码编译运行一下就理解了
所谓序列化就是把java复杂对根据某种约定变成101011001.......的一个长字节列数据存放或者传输到某个地方存起来,硬盘就是一个文件,数据库就是一个blob字段。 需要的时候再根据之前的转换约定反序列化转化成你转之前的对象数据,继续供你使用。 这个类似将字符串通过某种编码变成字节数组一样的道理,你可以把字符串编码看成是java对象序列化的一个特例实现。 java提供的序列化对象就是一个接口,告诉大家一个约定,凡是实现了这个接口的java类,其实例都是可以序列化的,反之就是告诉大家这个类是不能序列化的,也就是不能保存对象当时的数据状态。 序列化的作用主要是为了把java复杂对象变成可传输的参数对象供对方使用。 java序列化的一个经典应用就是JMS消息,java任何实现了序列化的类其实例可以被JMS进行数据交换。发送方将java实例对象序列化成字节数组放到JMS队列,接收方拿到这个字节数组再根据约定反序列化编程需要的实例对象。这样做的目的是为了保证发送方和接收方是松耦合的设计。接收方不需要发送方的环境就可以得到复杂的java对象参数。 具体例子请参考:http://blog.csdn.net/wangloveall/article/details/7992448/
简单来说就是状态保存
把一个 Java 对象转换成字节,是序列化 把之前转换为字节的数据,再还原成为一个 Java 对象,是反序列化 用文字再怎么描述,都是抽象的,楼主找一段代码编译运行一下就理解了
62,614
社区成员
307,327
社区内容
加载中
试试用AI创作助手写篇文章吧