当前位置: 首页 > 面试题库 >

谁真正实现了可序列化的方法?

扶开诚
2023-03-14
问题内容

我一直在学习如何使用Serializable

我知道如果我创建一个具有不同变量的类“
A”来实现Serializable并添加Serializable到类中,那么它也是Serializable

但是,实际上是谁在实现这两种方法进行序列化?是否Object一切或不同类的重载他们的照顾时,有必要吗?


问题答案:

序列化实际上是在java.io.ObjectOutputStream(和java.io.ObjectInputStream)及其一些帮助器类中实现的。在许多情况下,这种内置支持就足够了,开发人员只需要实现marker接口Serializable。该接口称为“标记”,因为它没有声明任何方法,因此在实现类上不需要任何特殊的API。

如果需要,程序员可以使用自己的方法添加或替换默认的序列化机制。例如,如果在反序列化对象后需要一些其他初始化,则可以添加带有以下签名的方法:

private void readObject(java.io.ObjectInputStream s)
               throws java.io.IOException, java.lang.ClassNotFoundException

要完全控制序列化和反序列化,请使用java.io.Externalizable代替Serializable

如果需要,Java序列化中还有许多其他扩展点。该序列化规范是学习所有这些的权威性和完整的源代码。



 类似资料:
  • 本文向大家介绍Python实现时间序列可视化的方法,包括了Python实现时间序列可视化的方法的使用技巧和注意事项,需要的朋友参考一下 时间序列数据在数据科学领域无处不在,在量化金融领域也十分常见,可以用于分析价格趋势,预测价格,探索价格行为等。 学会对时间序列数据进行可视化,能够帮助我们更加直观地探索时间序列数据,寻找其潜在的规律。 本文会利用Python中的matplotlib【1】库,并配合

  • 本文向大家介绍C#实现Xml序列化与反序列化的方法,包括了C#实现Xml序列化与反序列化的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现Xml序列化与反序列化的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍简单了解Ajax表单序列化的实现方法,包括了简单了解Ajax表单序列化的实现方法的使用技巧和注意事项,需要的朋友参考一下 原生表单序列化 随着Ajax的出现,表单序列化已经成为一种需求,在学习原生Ajax时,若用POST方法向后台提交数据时,就需要将表单序列化 在JavaScript中可以利用表单字段的type属性,连同name和value属性,一起实现表单的序列化。 在进行表单序列

  • 本文向大家介绍golang实现java uuid的序列化方法,包括了golang实现java uuid的序列化方法的使用技巧和注意事项,需要的朋友参考一下 目前只实现了java生成的固定的uuid:85bb94b8-fd4b-4e1c-8f49-3cedd49d8f28的序列化 java读取测试 到此这篇关于golang实现java uuid的序列化方法的文章就介绍到这了,更多相关golang实现

  • 本文向大家介绍C#实现JSON字符串序列化与反序列化的方法,包括了C#实现JSON字符串序列化与反序列化的方法的使用技巧和注意事项,需要的朋友参考一下 C#将对象序列化成JSON字符串 这里主要是使用JavaScriptSerializer来实现序列化操作,这样我们就可以把对象转换成Json格式的字符串,生成的结果如下: 如何将Json字符串转换成对象使用呢? 在实际开发中,经常有可能遇到用JS传

  • 对于初学者,我希望将所有输入数据流转换为KeyedStreams。因此,我将输入数据流映射为一个元组,然后应用KeyBy将其转换为KeyStream。 我总是遇到序列化的问题,我试着按照本指南https://ci.apache.org/projects/flink/flink-docs-stable/dev/java_lambdas.html操作,但没有成功。 我想知道的是: null 测试类 错