将基本数据类型转化为字节的形式称为[序列化]
从字节转换为其对应的基本类型数据称为[反序列化]
将数据保存到磁盘中称为[持久化]
transient关键字,被该关键字修饰的属性,不会被序列化
序列化实现 implements Serializable
对象序列化与反序列化
ObjectInputStream:将字节读入并转换为其描述的对象
ObjectOutputStream:将给定的对象转成字节并写出
对象的属性有两类:
1.基本类型属性:将基本类型数据的值直接转化为字节
2.引用类型属性:这里会递归操作,先将该对象转化为字节
import java.io.Serializable;
import java.util.Objects;
/**
* 可以被序列化的类
* 想要序列化,该类必须实现序列化接口
*/
public class Person implements Serializable {
private String name;
/*
transient关键字
被该关键字修饰的属性,不会被序列化
*/
private transient int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public String toString(){
return "名字:"+name+"年龄:"+age;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person