JAVA序列化
来源:互联网 发布:魔兽插件mac版 编辑:程序博客网 时间:2024/06/04 22:06
1、什么是序列化
序列化就是把对象转换成字节方便存储以及传递,并且可以在从字节重构对象的一种机制。
2、序列化的作用:
分布式处理中对象的传递。负载均衡以及故障转移
3、serializable接口:
java 中一个对象要声明为可序列化的对象,只要继承Serializable接口就可以了。Serializable接口不含有任何方法。
一个对象被序列化,则其中的所有实例变量要么是基本类型,要么是可序列化的。而对于不可序列化或者我们不想序列化的变量可以用transient声明。
4、一个序列化例子
public class Employee implements Serializable{ private String name; private double salary;}ObjectOutputStream out = new ObjectOutputStream(Files.newOutputStream(Path));Employee peter = new Employee("peter",90000);out.writeObject(peter)
反序列化
ObjectInputSteam in = new ObjectInputSteam(Files.newInputSteam(Path));Employee peter = (Employee)in.readObject();
要做到这一点,我们需要有一个序列化号,假设A,B同时引用了C,那么序列化A的时候C也被序列化了,序列化B的时候我们检查发现C已经被序列化了。那这时候只在B中保存一个序列化号
5、readObject和writeObject方法
由于某些特殊需求我们可以重写这两个方法。我们可以在默认的读写行为上加上任意的操作。
比如Point2D这个类是不可序列化的
public class LabeledPoint implements Serializable{ private String label; private transient Point2D point;...}private void writeObject(ObjectOutputStream out){ out.defaultWriteObject(); out.writeDouble(point.getX()); out.writeDouble(point.getY());}
<pre name="code" class="java">private void readObject(ObjectInputSteam in){ in.defaultReadObject(); double x = in.readDouble(); double y = in.readDouble(); point = new Point2D(x,y);}
0 0
- Serializable java序列化
- Java对象序列化
- java序列化-Serializable
- Serializable java序列化
- Serializable java序列化
- Java对象序列化
- Java对象序列化
- Java对象序列化
- Serializable java序列化
- JAVA序列化Serializable
- java对象序列化
- Java 对象序列化
- DEMO-JAVA序列化
- Java 对象序列化
- java 序列化
- Java对象序列化
- Serializable java序列化
- java序列化介绍
- SOA简介
- C/C++复习(1):基本概念
- Eclipse + Pydev开发环境配置
- Linux 自动删除 日志
- AbstractQueuedSynchronizer/AQS 使用拓展分析-优
- JAVA序列化
- 面试题:OSI七层协议和TCP/IP四层协议
- 05border-padding总结
- godfrey_88 最小编辑代价
- CentOS 7 vim显示中文乱码
- 字符串转成流
- 网络网络基础知识-协议分层和OSI参考模型
- Golang MongoDB 驱动 mgo 的若干问题
- 彻底理解ThreadLocal