- 序列化
序列化就是将一个对象变成二进制的比特流 可以把这个比特流保存到文件中 或者通过网络传输
- 反序列化
将序列化后的二进制比特流还原回原来的对象
- 简单来说就好比我们看大科幻电影 里面有很多的情节是这样的 将一个人或者物体变成一串数字和字母流 然后传送到很远的地方再将这一串数字和字母流变回原来的物体 这一过程和序列化反序列化很像 将物体变成数字字母流就是序列化 将数字字母流变成物体就是反序列化
========================================================================
-
当我们需要把内存中的对象状态保存到一个文件中或者数据库中时候
-
用套接字在网络上传送对象的时候
-
序列化最大的目的就是为了能让对象通过网络传输 能够保存在文件中 防止丢失找不到
================================================================================
- 要注意几点
-
如果对象要进行序列化需要实现Serializable接口
-
ObjectOutputStream 用于序列化
-
ObjectInputStream 用于反序列化
-
transient修饰的变量不可以序列化
-
static 修饰的变量不能被序列化
import java.io.*;
//实现serializable接口才可以实现对象的序列化
class Person implements Serializable {
public String name;
public int age;
public String sex;
//transient修饰的变量不可以序列化
transient public String cardId;
//static 修饰的变量不能被序列化
public static String phoneNum;
public Person(String name, int age, String sex, String cardId) {
this.name = name;
this.age = age;
this.sex = sex;
this.cardId = cardId;
}
public static void setPhoneNum(String phoneNum) {
Person.phoneNum = phoneNum;
}
@Override
public String toString() {
return “Person{” +
“name='” + name + ‘’’ +
“, age=” + age +
“, sex='” + sex + ‘’’ +
“, cardId='” + cardId + ‘’’ +
“, phoneNum='” + phoneNum + ‘’’ +
‘}’;
}
}
public class SerializTest {
public static void main(String[] args) {
Person person = new Person(“Listen”, 21, “MAN”, “100100100111”);
Person.setPhoneNum(“120”);
//序列化一个对象
serializPreson(person);
//反序列化一个对象
Person personRet = desSerializable();
System.out.println(personRet);
}
private static Person desSerializable() {
Person person = null;
try (ObjectInputStream objectInputStream = new ObjectInputStream(new FileInput
必看视频!获取2024年最新Java开发全套学习资料 备注Java
Stream(“D:\java\java.txt”))){
person = (Person) objectInputStream.readObject();
System.out.println(“反序列化成功”);
} catch (IOException | ClassNotFoundException e) {
e.getStackTrace();
}
最后
总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习
还有更多学习笔记面试资料也分享如下:
}
最后
总而言之,面试官问来问去,问的那些Redis知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习
还有更多学习笔记面试资料也分享如下:
[外链图片转存中…(img-J63iZMXb-1716451262038)]