Serializable实现了对象的序列化,方便对象数据的网络传输和持久化保存。日常中不实现Serializable接口也可以将数据保存到数据库是因为保存的数据都为简单的类型,而不是自定义的类。

一. 创建User类实现Serializable接口

import java.io.Serializable;public class User implements Serializable {private static final long serialVersionUID = -3561365928791982079L;private String userId;private String username;private Integer age;public User(String userId, String username, int age) {this.userId=userId;this.username=username;this.age=age;}public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}
}

二. 编写一个包含main方法的测试类:Main,用于测试序列化和反序列过程

import java.io.*;public class Main {public static void main(String[] args) {User user=new User("123","admin",12);try{//1.创建OutputStreamOutputStream outputStream = new FileOutputStream("output.txt");//2.将outputStream封装到ObjectOutputStream对象内ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream);//3.调用writeObject()即可完成对象的序列化,并将其发送给OutputStream:objectOutputStream.writeObject(user);//4.关闭资源objectOutputStream.close();outputStream.close();System.out.println("序列化成功");//1.创建InputStream对象InputStream inputStream = new FileInputStream("output.txt");//2.将inputStream封装到ObjectOutputStream对象内ObjectInputStream objectInputStream=new ObjectInputStream(inputStream);// 3.调用readObject()即可完成对象的反序列化:User user1=(User)objectInputStream.readObject();//4.关闭资源objectInputStream.close();inputStream.close();System.out.println("反序列化成功");System.out.println("userId:"+user1.getUserId()+";"+"username:"+user1.getUsername()+";"+"age:"+user1.getAge()+"");}catch (FileNotFoundException e ){e.printStackTrace();}catch (IOException e){e.printStackTrace();}catch (ClassNotFoundException e){e.printStackTrace();}}
}

三. 结果

序列化结果

反序列化结果

Serializable序列化实例相关推荐

  1. Java 之 Serializable 序列化和反序列化的概念,作用的通俗的解释

    1.序列化和反序列化的疑问 遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题 a,什么叫序列化和反序列化 b,作用.为啥要实现这个 Serializable 接口, ...

  2. Jackson序列化实例

    参考文章 Jackson使用ContextualSerializer在序列化时获取字段注解的属性 使用BeanSerializerModifier定制jackson的自定义序列化(null值的处理) ...

  3. java.io.Serializable 序列化问题【原】

    java.io.Serializable 序列化问题 Person.java package a.b.c;public class Person implements java.io.Serializ ...

  4. java 序列化快捷键_IntelliJ IDEA生成 Serializable序列化UID的快捷键

    IntelliJ IDEA生成 Serializable序列化UID的快捷键 serialVersionUID 用来表明类的不同版本间的兼容性 简单来说,Java的序列化机制是通过在运行时判断类的se ...

  5. Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释

    遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题 a,什么叫序列化和反序列化 b,作用.为啥要实现这个 Serializable 接口,也就是为啥要序列化 c,se ...

  6. (转)Serializable 序列化和反序列化

    遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题 a,什么叫序列化和反序列化 b,作用.为啥要实现这个 Serializable 接口,也就是为啥要序列化 c,se ...

  7. Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释【转】

    转载自:https://blog.csdn.net/qq_27093465/article/details/78544505 遇到这个 Java Serializable 序列化这个接口,我们可能会有 ...

  8. java json 序列化对象空值不处理_jackson 实体转json 为NULL或者为空不参加序列化(实例讲解)...

    使用jackson进行序列化时,往往会遇到后台某个实体对象的属性为null,当序列化成json时对应的属性也为null:这样在某些前端组件上应用该json对象会报错.(例如:echarts) 下面总结 ...

  9. idea 生成 Serializable 序列化 UID 的快捷键

    idea 生成 Serializable 序列化 UID 的快捷键 在idea中找到setting->Eidor->inspectons 在出现的搜索框中输入Serializable cl ...

最新文章

  1. 直播 | 商汤科技X-Lab宋广录:大规模视觉检测任务的检测器设计与优化
  2. 「MacOS」无法打开***,因为无法验证开发者。
  3. 你们的蛙儿子成马云儿子了 阿里巴巴获得《旅行青蛙》独家代理权
  4. python编程计算器_python怎么编写计算器程序
  5. python程序打包成安卓app教程_Python zipapp打包教程(超级详细)
  6. 移动应用占美国人移动设备使用时长80%
  7. 这个我过滤概述UIPickerView键盘处理
  8. LVS(DR)+keepalived+nfs+raid+LVM
  9. spring源码解析——@Component注解原理
  10. 爬虫笔记34:mongodb的概述(安装和启动)、基本命令、练习题
  11. 域名申请:一定要进行实名认证吗?
  12. 前端实训-遮罩+遮罩动画
  13. android pcm文件大小_Android中的PCM设备
  14. 制作U盘CDLinux使用奶瓶进行网络抓包
  15. 小球碰壁反弹加分_用Java实现小球碰壁反弹的简单实例(算法十分简单)
  16. 国内图书分类号 国际图书分类号查询
  17. 【Lua编程基础】实测Lua中点和冒号的区别
  18. 树莓派搭建nextcloud
  19. 提升资源利用率与保障服务质量,鱼与熊掌不可兼得?
  20. i++和++i 和i+1的区别

热门文章

  1. 男生有妹妹的人很幸福哦!希望他们能够珍惜自己的...
  2. [内存管理] Linux Reserved Memory 预留内存
  3. 人物专属道具--吴国
  4. v-if 和v-show的区别
  5. 十年前的阿里大牛困惑:我们为什么感觉不到淘宝应用升级时的停机?
  6. Glide等比缩放图片问题总结
  7. Java程序开发一个窗体有两个按钮,一个是“开始”按钮,一个是“结束”按钮,当用户点击“开始”按钮时就在控制台打印一句话,反之则结束打印。
  8. 收钱吧的 Python 高效自动化测试实践
  9. java 集合遍有几种方法_Java 集合遍历的几种方法
  10. 小猪的Python学习之旅 —— 15.浅尝Python数据分析:分析2018政府工作报告中的高频词...