【Java】Serializable序列化-阿里云开发者社区

开发者社区> 怀特> 正文

【Java】Serializable序列化

简介: Serializable序列化“持久化”意味着对象的“生存时间”并不取决于程序是否正在执行——它存在或“生存”于程序的每一次调用之间。通过序列化一个对象,将其写入磁盘,以后在程序再次调用时重新恢复那个对象,就能圆满实现一种“持久”效果。
+关注继续查看

代码:
@Data
public class BaseEntity implements Serializable {

@TableId(value = "id", type = IdType.AUTO)
private Long id;
private LocalDateTime created;
private LocalDateTime updated;
private Integer statu;

}
可以看到定义实体的时候implements Serializable与普通的不一样,普通的我们就会直接写一个类就OK
但是为什么需要这样写来序列化呢?
1.远程方法调用(RMI)使本来存在于其他机器的对象可以表现出好象就在本地机器上的行为。将消息发给远程对象时,需要通过对象序列化来传输参数和返回值。
2.使用一个Java Bean 时,它的状态信息通常在设计期间配置好。程序启动以后,这种状态信息必须保存下来,以便程序启动以后恢复;具体工作由对象序列化完成。
通俗来说就是将存储对象在硬盘中,以便在下次使用的时候,可以很快捷的重建一个。
第二个就是便于数据传输,尤其是在远程调用的时候!
仔细查看Serializable接口代码是一个里面什么都没有的接口
它的源代码是public interface Serializable{},即什么都没有。
但是我们也要有这个实现。
最后总结:serializable接口就是Java提供用来进行高效率的异地共享实例对象的机制,实现这个接口即可。

可以参考文章:
https://www.cnblogs.com/wangenxian/p/11003221.html
https://www.cnblogs.com/huhx/p/serializable.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
lua table序列化和反序列化
function serialize(obj) local lua = "" local t = type(obj) if t == "number" then lua = lua .
1059 0
C# 实体类序列化与反序列化二 (DataContractSerializer)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization; using System.IO; using System.Xml; namespace Common.Utility.XMLSerializatio
774 0
使用JavaScriptSerializer进行序列化日期类型应该注意的问题
原文:使用JavaScriptSerializer进行序列化日期类型应该注意的问题JavaScriptSerializer在序列化DateTime时,是用刻度来表示的,具体在Json体现为:\/Date(315547200000)\/  用V进行一个闭包, 括号内为Date的刻度,刻度就是时间滴答滴...
565 0
WCF 序列化与反序列化复杂类型(DataContractSerializer)
作者:jiankunking 出处:http://blog.csdn.net/jiankunking .NET的类型可以分为两种:声明类型和真实类型。我们提倡面向接口的编程,对象的真实类型往往需要在运行时才能确定,在编程的时候往往只需要指明类型的声明类型,比如类型实现的接口或者抽象类。当我们使用基于接口或者抽象类创建的DataContractSerializer去序列化一个实现了该接口或者
1190 0
Serializable详解(1):代码验证Java序列化与反序列化
Serializable详解之代码验证Java序列化与反序列化
913 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
4401 0
解决:class invalid for deserialization序列化的问题(真实有效)
数据库连接失败 在数据库连接失败,经常会有蛮多一系列的问题导致的原因,这个时候一定要多去尝试一下各种方法,并且做好自己的梳理! 一、例如我在SpringBoot项目中使用了阿里的数据库连接池Driud。
3102 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
7735 0
使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错
原文:使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错 如题   报错提示: 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。
905 0
+关注
怀特
爱折腾的程序猿~
7
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载