java 序列化
什么是序列化?
对象和二进制的转换。
转换的目的是啥?
对象转换为二进制,然后再把二进制恢复为对象。
具体应用场景是,把对象写到磁盘文件,或者更常见的就是把对象传到远程机器(比如,dubbo rpc 框架)。
什么是 java 序列化?
java 序列化特殊一点点,是对象和字节数组( byte[] )的转换。但是,字节数组的本质也是二进制。
序列化的作用?
所以,无论是其他语言,还是 java 语言的序列化,本质作用都是为了从磁盘文件或者远程机器恢复对象。
如何实现序列化?
实现序列化接口
public class Person implements Serializable {
private static final long serialVersionUID = 2709425275741743919L;
}
复制代码
demo
pojo 类,主要是要实现序列化接口。
package test2;
import java.io.Serializable;
public class Person implements Serializable { //实现序列化接口
private static final long serialVersionUID = 1L;
private String name;
private Integer age;
private String address;
public Person() {
}
public Person(String name, Integer age, String address) {
this.name = name;
this.age = age;
this.address = address;
}
@Override
public String toString() {
return "test2.Person{" +
"name='" + name + ''' +
", age=" + age +
", address='" + address + ''' +
'}';
}
}
复制代码
测试类,核心步骤
-
序列化
把对象转换为二进制(即字节数组),然后写到磁盘文件
2、反序列化
从磁盘文件恢复对象,其实就是把二进制再转换为对象
package test2;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
/**