我们应该什么时候实现Serializable接口?

public class Contact implements Serializable { private String name; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } } 
  1. 什么时候应该实现Serializable接口?
  2. 我们为什么这样做?
  3. 它是否有任何优势或安全性?
  1. 从什么是这个“序列化”的东西呢? :

    它可以让你拿一个对象或一组对象,把它们放在一个磁盘上,或通过有线或无线传输机制发送,然后,也许在另一台计算机上,反转这个过程:重新生成原始对象。 基本的机制是将对象平铺成一维的位stream,并将这些位stream转换回原来的对象。

    就像“星际迷航”上的运输者一样,把所有东西都变成一个复杂的东西,把它变成一个1和0的平坦序列,然后把1和0的序列(可能在另一个地方,可能在另一个地方),重build原来复杂的“东西“。

    因此,当需要存储对象的副本时,实现Serializable接口,将其发送到同一系统或networking上的另一个进程。

  2. 因为你想存储或发送一个对象。

  3. 它使存储和发送对象容易。 它与安全无关。

  1. 如果希望能够将类的实例转换为一系列字节,或者当您认为Serializable对象可能引用您的类的实例时,请实现Serializable接口。

  2. 如果要保存它们的实例或通过电线发送它们,则可Serializable类很有用。

  3. Serializable类的实例可以很容易地传输。 然而,序列化确实有一些安全性的后果。 阅读Joshua Bloch的“Effective Java”。