A_30_28、java序列化
2021-04-14 16:59:47 0 举报
AI智能生成
全面、高效的知识图谱:A_30_28、java序列化!! 全面又深度的提升认知,达到实际应用的目的! 建议先纵观全局,掌握好大方向。 再根据自己的需要,针对性的学习某一个点,最后做到逐步由点及面。
作者其他创作
大纲/内容
transient关键字
当某个字段被声明为transient后,默认序列化机制就会忽略该字段
例子
public static void main(String[] args) throws Exception {
File file = new File("person.out");
//序列化
ObjectOutputStream oout = new ObjectOutputStream(new FileOutputStream(file));
Person person = new Person("John", 101, Gender.MALE);
oout.writeObject(person);
oout.close();
//反序列化
ObjectInputStream oin = new ObjectInputStream(new FileInputStream(file));
Object newPerson = oin.readObject(); // 没有强制转换到Person类型
oin.close();
System.out.println(newPerson);
}
应用
网络传输、RMI等场景
概念
对象序列化的机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型
将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化
整个过程都是 Java 虚拟机(JVM)独立的
满足两个条件
实现 java.io.Serializable 对象
该类的所有属性必须是可序列化的。如果有一个属性不是可序列化的,则该属性必须注明是短暂的
序列化对象
ObjectOutputStream 类用来序列化一个对象
注意
序列化并不保存静态变量
要想将父类对象也序列化,就需要让父类也实现Serializable 接口
反序列化对象
ObjectInputStream 类用来反序列化一个对象
0 条评论
下一页