JAVA序列化:implements Serializable

摘要:
例如,如果你想将一个特定的对象保存到一个文件中,我每隔几天就会使用它,那么你需要实现Serializable接口。最常见的方法是传输字符串,它是JDK中的一个类,也实现了Serializable接口。这是为了将数据转换为二进制进行传输,因此可以在网络上进行传输。因此,如果要序列化某些类的对象,这些类必须实现Serializable接口。

什么是序列化:

序列化的过程,就是一个“freeze”的过程,它将一个对象freeze住,然后进行存储,等到再次需要的时候,再将这个对象de-freeze就可以立即使用。

什么情况下需要序列化:

原文:https://blog.csdn.net/dinghqalex/article/details/46009911 

        1.     当你想把的内存中的对象写入到硬盘的时候。

        2.     当你想用套接字在网络上传送对象的时候。

        3.     当你想通过RMI传输对象的时候。

稍微解释一下:

        1.    【保存在硬盘中时】比如说你的内存不够用了,那计算机就要将内存里面的一部分对象暂时的保存到硬盘中,等到要用的时候再读入到内存中,硬盘的那部分存储空间就是所谓的虚拟内存。在比如过你要将某个特定的对象保存到文件中,我隔几天在把它拿出来用,那么这时候就要实现Serializable接口。

        2.    【网络上传输时】在进行Java的Socket编程的时候,你有时候可能要传输某一类的对象,那么也就要实现Serializable接口。最常见的你传输一个字符串,它是JDK里面的类,也实现了Serializable接口,这样做为的是将数据变为二进制来传输,所以可以在网络上传输。

        3.    【远程方法调用时】如果要通过远程的方法调用(RMI)去调用一个远程对象的方法,如在计算机A中调用另一台计算机B的对象的方法,那么你需要通过JNDI服务获取计算机B目标对象的引用,将对象从B传送到A,就需要实现序列化接口。

 如何实现序列化:

  一个对象序列化的接口,一个类只有实现了Serializable接口,它的对象才是可序列化的。因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。

疑问:

@ResponseBody是作用在方法上的,@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。(@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。) 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据,JSON是序列化, (所以返回结果要实现序列化就能转为json(待确认))

参考:https://www.cnblogs.com/yingyigongzi/p/9280608.html

问:返回如果是对象,对象需要实现序列化

SpringBoot定制@ResponseBody注解返回的Json格式:

  https://blog.csdn.net/qq_33328356/article/details/89856823

免责声明:文章转载自《JAVA序列化:implements Serializable》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇20、Linux实操篇——磁盘分区、挂载chkconfig 添加脚本开机自启动下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

第6章 RPC之道

 6.1 认识RPC 分布式、微服务的架构思维中都不能缺少 RPC 的影子 RPC(Remote Procedure Call)远程过程调用。通过网络在跨进程的两台服务器之间传输信息,我们使用的时候不用关心网络底层的实现,通过RPC调用远程服务就像本地调用系统内部方法一样方便。 在 OSI 网络通信模型中,RPC跨越了传输层和应用层,使开发分布式应用程序变...

支付宝异步通知处理实现原理总结

支付宝有一个接口:实现支付请求(里面要提供一个订单号) 你有一个接口:实现支付结果的通知(通知里面会包含订单号) 后面就简单了 1)你生成订单 请求调用 支付宝接口 去支付(然后。。然后就没然后了) 2)你的接口:等着呗 支付宝会调用的接口 通知你 那个订单完成的结果 3) 支付系统的异步通知实质上是给给定的地址发送请求实现的,这个地址很可能是不会有页面而...

Protoc Buffer 优化传输大小的一个细节

Protoc Buffer 是我们比较常用的序列化框架,Protocol Buffer 序列化后的占空间小,传输高效,可以在不同编程语言以及平台之间传输。今天这篇文章主要介绍 Protocol Buffer 使用 VarInt32 减少序列化后的数据大小。 VarInt32 编码  VarInt32 (vary int 32),即:长度可变的 32 为整型...

Linux系统中的以太网连接

1.在Linux中,以太网连接接口被命令为:eth0,eth1等,其中0,1表示网卡编号。 2.lspci来查看网卡硬件信息(USB则是lsusb) 3.ifconfig来查看接口信息   ifconfig -a来查看所有接口   ifconfig eth0来查看特定eth0接口信息。   ifup和ifdown来启用或者是禁用一个解口。如:ifup et...

[Java] HOW2J(Java中级)

异常 定义:导致程序正常流程被中断的事件 异常处理常见手段 try catch:将可能抛出异常的代码放在try的块中,一旦出现异常就跳转到catch的块中处理 throws/throw:不在本模块处理异常,而是交给调用者处理 finally:无论是否出现异常,都会执行(保证能正常结束) 使用异常的父类进行catch:可以,但可能不精确 多异常捕捉:...

drf序列化组件

一. 序列化组件介绍# Copy 1. 序列化,序列化器会把模型对象转换成字典,经过response以后变成json字符串 2. 反序列化,把客户端发送过来的数据,经过request以后变成字典,序列化器可以把字典转成模型 3. 反序列化,完成数据校验功能 二. 简单使用# 步骤: Copy 1. 写一个序列化的类,继承Serializer 2....