一、定义:
-
官方一点的解释:
序列化:
就是把内存中的状态通过转换成字节码的形式,从而转换一个
I/O流,写入其它地方(可以式磁盘,网络I/O)反序列化:
就是将已经持久化的字节码内容转换为
I/O流,通过I/O流的读取,进而将读取的内容转换为java对象 -
放牛娃的理解解释:
序列化:
将
java对象转化成流(这个序列化流就是保存着java对象的结构)反序列化:
将序列化流转化成
java对象
二、如何实现
1. 方法:
- 简单粗暴的,实现
Serializable接口
2. 代码实战:
- 未添加序列化版本号,仔细观察了哈!!!
package chen.com.seriable_study;
import java.io.Serializable;
/**
* 序列化,反序列化的学习
* author: 放牛娃
* 公众号:放牛娃学编程
*/
public class Annimal implements Serializable {
//不添加序列化版本,仔细观察(先注释掉)
// private static final long serialVersionUID = 1l;
// 动物名称
private String name;
// 年龄
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Annimal{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
//测试代码
package chen.com.seriable_study;
import java.io.*;
/**
* 测试
*/
public class Seriable_test {
public static void main(String[] args) throws IOException, ClassNotFoundException {
Annimal annimal = new Annimal();
annimal.setAge(2);
annimal.setName("小猫");
//序列化
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("d:/annimalSeriable.txt"));
objectOutputStream.writeObject(annimal);
objectOutputStream.close();
//反序列化
ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("d:/annimalSeriable.txt"));
Annimal animal2 = (Annimal)objectInputStream.readObject();
System.out.println("animal2.toString() = " + animal2.toString());
}
}
(1)结果:
-
序列化后d盘下:

-
反序列化后控制台:
(2)为动物添加一个速度属性,再反序列化试试看

原因分析: -
因为增加了一个属性,所以当前的序列化版本就对不上了,所以一般都是显示写上序列化版本号(上面的注释放开)。
-
如果我们保持了serialVersionUID的一致,则在反序列化时,对于新增的字段会填入默认值null(int的默认值0),对于减少的字段则直接忽略。
看到这里的小伙们,再不点赞就说不过去了吧
三、分享交流
最后有兴趣一起交流的,可以关注我的公众号:这里你能够学到很实用的技巧,不是常用的我不说,公众号回复提取码即可获取以下学习资料啦啦啦啦,喜欢就拿去吧!!
(链接时常会失效,若出现此类情况,可以加我微信:17722328325(加时请备注:学习资料))
-
Java web从入门到精通电子书
-
Python机器学习电子书
-
Python400集(北京尚学堂)
-
JavaScript项目案例、经典面试题
-
Java300集(入门、精通)
-
Java后端培训机构录集(同事培训内部提供)
-
java重要知识pdf文档(价值连城呀呀,不收藏你会后悔的)
喜欢就关注吧,点个赞吧

被折叠的 条评论
为什么被折叠?



