什么是 java 序列化?
时间: 2023-07-03 16:29:44 浏览: 35
Java序列化是将Java对象转换为字节序列的过程,以便在网络上传输或将其存储在磁盘上。反序列化是将字节序列转换回Java对象的过程。
序列化的主要目的是允许在不同的Java虚拟机之间传输对象或将对象保存到磁盘上。例如,可以将一个Java对象序列化为字节序列,然后将字节序列发送到另一台计算机,该计算机可以将字节序列反序列化为相同的Java对象。
Java序列化可以通过实现Serializable接口来实现。Serializable接口是一个标记接口,没有任何方法。如果一个类实现了Serializable接口,那么它的实例就可以被序列化。例如:
```
public class MyClass implements Serializable {
private int x;
private String str;
// ...
}
```
要将一个对象序列化为字节序列,可以使用ObjectOutputStream类。例如:
```
MyClass obj = new MyClass();
// ... 初始化对象 ...
FileOutputStream fos = new FileOutputStream("data.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(obj);
oos.close();
```
要将一个字节序列反序列化为Java对象,可以使用ObjectInputStream类。例如:
```
FileInputStream fis = new FileInputStream("data.ser");
ObjectInputStream ois = new ObjectInputStream(fis);
MyClass obj = (MyClass) ois.readObject();
ois.close();
```
阅读全文