【一】:对象序列化
序列化是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。 以后可以从存储区读取或反序列化对象的状态,重建对象。目的:
- 以某种存储形式使自定义对象持久化;
- 将对象从一个地方传递到另一个地方;
- 使程序更具维护性。
1.类实现的接口:Serializable
2.被static 修饰的变量不会被序列化(因为static修饰的变量存在于共享区,而序列化的区域为堆内存)
3. static final long serialVersionUID = 42L;(不会使类修改后其UID发生变化)
4.被transient关键字修饰的成员变量也不会被序列化,虽然这个成员变量在堆内存中。
【二】:代码示例
1.序列化的类
import java.io.*;
class Student implements Serializable
{
private int id;
private String name;
private int age;
Student(int id,String name,int age){
this.id=id;
this.name=name;
this.age=age;
}
public String toString(){
return id+"::"+name+"::"+age;
}
}
2.对对象进行读写
import java.io.*;
class ObjectDemo
{
public static void main(String[] args) throws Exception{
//writeObject();
readObject();
}
public static void writeObject() throws Exception{
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("object.txt"));
oos.writeObject(new Student(1,"张三",23));
oos.close();
}
public static void readObject() throws Exception
{
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("object.txt"));
System.out.println(ois.readObject());
ois.close();
}
}
【输出截图】:
写操作的截图:
读操作的截图: