• serialVersionUID

    • 用对象序列化流序列化了一个对象后,假如我们修改了对象所属的类文件,读取数据会不会出问题呢?

      • 会出问题,会抛出InvalidClassException异常

    • 如果出问题了,如何解决呢?

      • 重新序列化

      • 给对象所属的类加一个serialVersionUID

        • private static final long serialVersionUID = 42L;

  • transient

    • 如果一个对象中的某个成员变量的值不想被序列化,又该如何实现呢?

      • 给该成员变量加transient关键字修饰,该关键字标记的成员变量不参与序列化过程

  • 示例代码

    • 学生类

public class Student implements Serializable {private static final long serialVersionUID = 42L;private String name;
//    private int age;private transient int age;public Student() {}public Student(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}//    @Override
//    public String toString() {
//        return "Student{" +
//                "name='" + name + '\'' +
//                ", age=" + age +
//                '}';
//    }
}

测试类

public class ObjectStreamDemo {public static void main(String[] args) throws IOException, ClassNotFoundException {
//        write();read();}//反序列化private static void read() throws IOException, ClassNotFoundException {ObjectInputStream ois = new ObjectInputStream(new FileInputStream("myOtherStream\\oos.txt"));Object obj = ois.readObject();Student s = (Student) obj;System.out.println(s.getName() + "," + s.getAge());ois.close();}//序列化private static void write() throws IOException {ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("myOtherStream\\oos.txt"));Student s = new Student("林青霞", 30);oos.writeObject(s);oos.close();}
}

serialVersionUIDtransient相关推荐

  1. Java19-day10【标准输入输出流、字节字符打印流、对象序列化-反序列化流、serialVersionUIDtransient、Properties】

    视频+资料[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java世界的大门)--博 ...

最新文章

  1. 【1】用命令行搭建Vue项目
  2. 搜索引擎之---Apache solr的实现
  3. springBoot单元测试-模拟MVC测试
  4. boost::pool模块实现验证是否 malloc/free 宏一切仍然正常的测试程序)
  5. UA Web挑战会议:针对初创公司的SpringIO
  6. 华为VLAN间互访配置
  7. linux系统安装m1136打印机,Ubuntu 安装及共享打印机
  8. 保定市2017年计算机高考试题,保定三中名师第一时间点评2017年高考理综试卷
  9. Bulma 教程,Bulma 指南,Bulma 实战,Bulma 中文手册
  10. 【最新】报表开发工具-->FineBI安装与启动---Windows
  11. 维谛技术(Vertiv):一切研发创新都以客户需求为核心
  12. 国开教育学形考任务2试题1试题及答案
  13. g第十四周,十五周作业
  14. c#跳出循环break与continue
  15. Erigon 最新执行客户端安装教程
  16. 二值图像blob分析
  17. 【kmp】似乎在梦中见过的样子
  18. 小程序兼容苹果底部安全距离
  19. Datepicker日期选择器插件
  20. EMUI10的分布式技术:跨越互联、连接万物

热门文章

  1. 阅读之spring+Dubbo
  2. SmartGit破解方法
  3. javasript中var、let和const区别
  4. JavaScript数据类型和变量学习小记
  5. LeetCode77:Combinations
  6. 对象的软、弱、和虚引用
  7. SYBASE里面出现客户端和服务器端字符集不匹配的情况解决方法
  8. VGA timing information
  9. WM_USER和WM_APP[转]
  10. 如何嵌入Live Messenger?