郑州企业网站推广,wordpress用什么系统好,扬中网站建设服务,企信网是干什么的文章目录Java对象为什么要实现Serializable接口#xff1f;Serializable接口概述Java对象为什么要实现Serializable接口#xff1f;
最近这段时间一直在忙着编写Java业务代码#xff0c;麻木地搬着Ctrl-C、Ctrl-V的砖#xff0c;在不知道重复了多少次定义Java实体对象时“…
文章目录Java对象为什么要实现Serializable接口Serializable接口概述Java对象为什么要实现Serializable接口
最近这段时间一直在忙着编写Java业务代码麻木地搬着Ctrl-C、Ctrl-V的砖在不知道重复了多少次定义Java实体对象时“implements Serializable”的C/V大法后脑海中突然冒出一个思维(A)问了自己一句“Java实体对象为什么一定要实现Serializable接口呢?”关于这个问题脑海中的另一个思维(B)立马给出了回复“居然问这么幼稚和基础的问题实现Serilizable接口是为了序列化啊!”思维(A)“哦好吧!然而然后呢?”
此时思维(B)陷入了沉默突然感觉自己有点浅薄了好像写了这么多年Java还真是没有太关注过Serializable这个接口!为什么一定要实现Serializable接口?它的底层原理是什么?为什么一定要序列化序列化又是什么?关于这些问题不知道各位读者朋友有没有过类似的问题如果有那么我们就在这篇文章中一起寻找答案吧!当然如果你对这些问题都很清楚也欢迎表达看法!
Serializable接口概述
Serializable是java.io包中定义的、用于实现Java类的序列化操作而提供的一个语义级别的接口。Serializable序列化接口没有任何方法或者字段只是用于标识可序列化的语义。实现了Serializable接口的类可以被ObjectOutputStream转换为字节流同时也可以通过ObjectInputStream再将其解析为对象。例如我们可以将序列化对象写入文件后再次从文件中读取它并反序列化成对象也就是说可以使用表示对象及其数据的类型信息和字节在内存中重新创建对象。
而这一点对于面向对象的编程语言来说是非常重要的因为无论什么编程语言其底层涉及IO操作的部分还是由操作系统其帮其完成的而底层IO操作都是以字节流的方式进行的所以写操作都涉及将编程语言数据类型转换为字节流而读操作则又涉及将字节流转化为编程语言类型的特定数据类型。而Java作为一门面向对象的编程语言对象作为其主要数据的类型载体为了完成对象数据的读写操作也就需要一种方式来让JVM知道在进行IO操作时如何将对象数据转换为字节流以及如何将字节流数据转换为特定的对象而Serializable接口就承担了这样一个角色。
原文链接戳这里 感谢作者分享