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

博客介绍了前后端交互的载体,包括json字符串和实现serializable的持久化对象。阐述了对象序列化是将对象状态转为字节流,反序列化则相反,且字节流与平台无关。还说明了使Java类可序列化需实现Serializable接口,若序列化不可序列化对象会抛出异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

1.json字符串传输,后端response方式,object为对象
        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持久化对象传输,
        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。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值