java中实现Serializable序列化接口-创新互联

我们在学习JavaSE的时候学习过ObjectInputStreamObjectOutputStream,当时是觉得只要一个对象要写入文件就必须要实现Serializable接口。其实这样理解完全没有问题。

目前创新互联已为上千家的企业提供了网站建设、域名、网站空间、网站托管、服务器托管、企业网站设计、香河网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

一、问题引入

Java中为什么要实现序列化接口呢?我们来看下图:

Java程序中要往磁盘中写入一个数据,这个数据如果是一个普通字符串,那么没有问题,所有机器都能正常识别字符串,即使需要转成对应的字节,计算机也知道怎么将字符串转成对应的字节(码表),但是如果是一个Java对象那就麻烦了,磁盘并不知道你传递的是一个Java对象,换句话说,磁盘不知道按照什么格式把Java对象转换成对应的字节。

我们知道Java对象本质上是一个class字节码,磁盘并不知道怎么将这个字节码写入到磁盘中,按何种方式去写,所以需要"标识"一下,告诉磁盘:“我是个Java对象,你要按这种方式写入到磁盘中”,只不过"按这种方式写入到磁盘"。因此实现Serializable接口只是标识一下"我是个Java对象"

如果你懂了上述文字的理解,也就不难懂下述图了:

二、加深理解

Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据、对象的类型和对象中存储的属性等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。

反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据、对象的类型和对象中存储的数据信息,都可以用来在内存中创建对象。看图理解序列化:

以上就是java中为什么要实现Serializable序列化接口的详细内容,更多请关注创新互联其它相关文章!


分享名称:java中实现Serializable序列化接口-创新互联
标题路径:http://hbruida.cn/article/ddsocd.html