• 技术文章 >Java >java教程

    java中为什么要实现Serializable序列化接口

    我叫mt我叫mt2019-11-30 17:03:25转载1894

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

    一、问题引入

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

    0e105a9d2fbfafaae2dd0a85e4ddaf4.png

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

    相关视频教程分享:java学习

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

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

    e3a44151b4fab6cc6f670cd9cb8b97c.png

    二、加深理解

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

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

    1.jpg

    相关文章教程推荐:java入门程序

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

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    上一篇:java中使用数组实现环形队列 下一篇:java如何定义接口

    相关文章推荐

    • java中动态数组的具体实现• java实现数组的动态初始化• java函数——构造函数与成员函数的异同点• java中使用数组实现环形队列

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网