首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >通俗易懂搞明白后端对象Serializable序列化

通俗易懂搞明白后端对象Serializable序列化

作者头像
多凡
发布2019-11-01 09:41:37
发布2019-11-01 09:41:37
1.2K0
举报
文章被收录于专栏:sringbootsringboot

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/weixin_44580977/article/details/95763003

前端和后端交互需要载体,这个载体以我现在了解有两种,一个是json字符串,另一个就是实现serializable持久化对象。

前后端交互,载体不同后端response方式也会不同,分别对应以下两种:

1.json字符串传输,后端response方式,object为对象

代码语言:javascript
复制
        ObjectMapper mapper = new ObjectMapper();
        String json = mapper.writeValueAsString(obj);
        System.out.println("json:" + json);
        response.setContentType("application/json;charset=utf-8");
        response.getWriter().write(json);

2.实现serializable持久化对象传输,

代码语言:javascript
复制
        ObjectMapper mapper = new ObjectMapper();
        response.setContentType("application/json;charset=utf-8");
        mapper.writeValue(response.getOutputStream(),obj);

字符串好理解,对象实现serializable接口后,持久化到内存中为二进制字节流,然后通过response.getOutputStream输出到前端。

这下你应该理解了后端传输中序列化的作用了把,下面再理解概念你或许就更加容易理解多了

1.对象序列化,和反序列化是什么意思?

对象序列化是一个用于将对象状态转换为字节流的过程,可以将其保存到磁盘文件中或通过网络发送到任何其他程序; 从字节流创建对象的相反的过程称为反序列化。 而创建的字节流是与平台无关的,在一个平台上序列化的对象可以在不同的平台上反序列化。

2.如何使java类课序列化?

通过实现java.io.Serializable接口,可以在Java类中启用可序列化。它是一个标记接口,意味着它不包含任何方法或字段,仅用于标识可序列化的语义。

3.如果我们试图序列化不可序列化的对象怎么办?

我们将得到一个 RuntimeException 异常:主线程中出现异常 java.io.NotSerializableException。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.对象序列化,和反序列化是什么意思?
  • 2.如何使java类课序列化?
  • 3.如果我们试图序列化不可序列化的对象怎么办?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档