当前位置: 首页 > 编程笔记 >

Java中的序列化和外部化之间的区别

谷良弼
2023-03-14
本文向大家介绍Java中的序列化和外部化之间的区别,包括了Java中的序列化和外部化之间的区别的使用技巧和注意事项,需要的朋友参考一下

序列化和外部化都是将对象转换为流字节并将字节流存储在数据库或内存中的过程。实现java.io.Serializable接口的类可以序列化。另一方面,根据应用程序的要求,外部化用于自定义序列化。外部化扩展了java.io.Serializable。 

序号 序列化 外在化
1
接口
序列化是标记接口 
外部化包含两个方法readExternal和writeExternal。 

实施逻辑 
实现此接口的类将JVM的责任交给Java进行序列化或持久化。JVM使用readObject和writeObject进行序列化 
外部化通过重写readExternal和writeExternal方法为应用程序提供实现逻辑控制。

忽略变量的方法 
在序列化中,JVM会在Java对象的序列化和反序列化过程中忽略瞬态变量 
程序员可以编写自己的逻辑来忽略Java对象外部化过程中的某些变量 

性能 
在可序列化接口中,使用反射会导致性能降低。
外部化可完全控制实施方法。 

具有继承的对象序列化 
1.如果超类不可序列化,则子类仍然可以序列化。
2.如果子类未序列化但超类可自动序列化 
我们也可以将其应用于可外部化。

可外部化的示例

class ExternalizableExample implements Externalizable {
   Integer id;
   @Override
   public void writeExternal(ObjectOutput out) throws IOException {
      out.writeInt( id );
   }
   @Override
   public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException {
      this.id = in.readInt();
   }
}

可序列化的示例

class SerializableExample implements Serializable {
   private static final long serialVersionUID = 5081877L;
   String name;
}
 类似资料:
  • 本文向大家介绍内部和外部碎片化之间的区别,包括了内部和外部碎片化之间的区别的使用技巧和注意事项,需要的朋友参考一下 在这篇文章中,我们将了解内部和外部碎片化之间的区别- 内部碎片 分配的内存和所需空间之间的差异称为内部碎片。 在这种分段中,使用固定大小的存储块来处理数据。 当某个方法或过程大于所需的内存时,将发生此过程。 内部分段使用的方法是“最佳拟合”块。 当内存被划分为固定大小的分区时,会发生

  • 问题内容: 我正在对Memento模式进行一些研究,而我通常对行为模式还是陌生的,而随着我的研究,我变得非常困惑。我一直感到困惑的主要事情之一是Memento模式和序列化之间的差异。 据我所知,两者都可以用来存储对象,并在以后将它们带回去,但是我无法就它们之间的主要区别找到明确的答案,也许我错过了一些研究成果但我想知道是否有人可以阐明两者之间的区别。 谢谢 问题答案: 通常,Memento模式用于

  • 我在postgresql里看到有两个独立的算法叫做外部排序和外部合并进行排序。我觉得两者是一样的。据我所知,外部排序是一个排序算法的集合,当整个批次无法在内存(RAM)中排序时,它处理大量数据的排序,并有两个阶段,第一阶段是对小块数据进行排序并将其存储在临时文件中,第二阶段是合并所有这些子文件以获得最终数据集。 我还知道外部合并排序算法是外部排序技术的一个示例。 所以在我的例子中,外部排序和外部合

  • 本文向大家介绍Android中可打包和可序列化之间的区别,包括了Android中可打包和可序列化之间的区别的使用技巧和注意事项,需要的朋友参考一下 本示例演示了Android中可打包和可序列化之间的区别 可序列化 可序列化是一个可标记的接口,或者我们可以将其称为空接口。它没有任何预先实现的方法。可序列化将对象转换为字节流。因此,用户可以在一个活动到另一个活动之间传递数据。可序列化的主要优点是创建和

  • 本文向大家介绍模糊化和反模糊化之间的区别,包括了模糊化和反模糊化之间的区别的使用技巧和注意事项,需要的朋友参考一下 模糊化 模糊化可以被定义为将清晰集转换为模糊集或将模糊集转换为模糊集的过程。基本上,此操作会将准确的明晰输入值转换为语言变量。 模糊化 模糊化可以定义为将模糊集简化为清晰集或将模糊成员转换为清晰成员的过程。 我们已经研究了模糊化过程涉及从清晰数量到模糊数量的转换。在许多工程应用中,必

  • 本文向大家介绍java对象的序列化和反序列化,包括了java对象的序列化和反序列化的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java对象的序列化和反序列化,供大家参考,具体内容如下 1. 什么是序列化        将对象转换为字节流保存起来,比如保存到文件里,并在以后还原这个对象,这种机制叫做对象序列化。(补充一句:把对象保存到永久存储设备上称为持久化) 2. 怎么实现序列化