JavaWeb~对象的序列化与反序列化

  • 序列化

序列化就是将一个对象变成二进制的比特流 可以把这个比特流保存到文件中 或者通过网络传输

  • 反序列化

将序列化后的二进制比特流还原回原来的对象

  • 简单来说就好比我们看大科幻电影 里面有很多的情节是这样的 将一个人或者物体变成一串数字和字母流 然后传送到很远的地方再将这一串数字和字母流变回原来的物体 这一过程和序列化反序列化很像 将物体变成数字字母流就是序列化 将数字字母流变成物体就是反序列化

为什么需要序列化?

========================================================================

  1. 当我们需要把内存中的对象状态保存到一个文件中或者数据库中时候

  2. 用套接字在网络上传送对象的时候

  3. 序列化最大的目的就是为了能让对象通过网络传输 能够保存在文件中 防止丢失找不到

实现Java对象的序列化与反序列化

================================================================================

  • 要注意几点
  1. 如果对象要进行序列化需要实现Serializable接口

  2. ObjectOutputStream 用于序列化

  3. ObjectInputStream 用于反序列化

  4. transient修饰的变量不可以序列化

  5. 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知识点也就这么多吧,复习的不够到位,知识点掌握不够熟练,所以面试才会卡壳。将这些Redis面试知识解析以及我整理的一些学习笔记分享出来给大家参考学习

还有更多学习笔记面试资料也分享如下:

[外链图片转存中…(img-J63iZMXb-1716451262038)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值