关于序列化,反序列化,Serializable接口使用的各人理解。
1.什么是序列化?
序列化,“串化”,是把Java对象内存中的数据采编成一串二进制的数据,然后把这些数据存放在可以持久的数据存储设备,如磁盘。
2.什么是反序列化?
反序列化,就是序列化的反过程,在需要还原数据的时候,通过反序列化的过程,把对象重新还原到内存中。
3.序列化的应用场合有哪些?
(1)把内存中的对象状态保存到一个文件中或者数据库中的时候
(2)用套接字在网络上传送对象的时候
(3) 通过RMI传输对象的时候
4. 如何实现序列化?
实现Serializable接口即可。(java.io.Serializable接口是可以进行序列化的类的标志性的接口,该接口本身没有任何需要实现的抽象方法,它仅仅是用来告诉JVM该类的对象是可以进行序列化的)
5.序列化的例子
package com.wxmp.core.page;
import java.io.Serializable;
/**
*
*分页参数实体类
*/
@Data
public class Page implements Serializable {
private static final long serialVersionUID = 1L;
private int page =1 ; //当前页索引
private int pageSize =20; //每页显示的数据条数
private int total = 0; //总条数
private int totalPage= 1; //总页数
private String account = WxMemoryCacheClient.getAccount();
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
}
Serializable {
private static final long serialVersionUID = 1L;
private int page =1 ; //当前页索引
private int pageSize =20; //每页显示的数据条数
private int total = 0; //总条数
private int totalPage= 1; //总页数
private String account = WxMemoryCacheClient.getAccount();
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
}
其中实现了Serializable接口就是实现了序列化。
<span style="color:#ff0000">private static final long serialVersionUID = 1L;</span>
serialVersionUID静态变量作用于序列化和反序列化的过程中,起到辨别一个类的作用,在反序列化的时候,如果两个类的类名完全相同,就通过serialVersionUID来判断该类是否符合要求,如果不行,抛出异常。serialVersionUID的值可以简单的设置成1L。