Java 为什么可序列化称为接口?

Java 为什么可序列化称为接口?,java,oop,serialization,Java,Oop,Serialization,它真的属于接口的定义吗?如果调用诸如标记或指示器之类的接口,那么像Serializable这样的接口的用途不是更容易理解吗?之所以称为接口,是因为它是一个接口: public interface Serializable { } 如果调用诸如标记或指示符之类的接口,那么像Serializable这样的接口的用途不是更容易理解吗 事实上,这种接口(不定义任何方法的接口)通常被称为“标记接口”。Serializable是一种接口,其中没有任何方法或字段- public interface Seri

它真的属于接口的定义吗?如果调用诸如标记或指示器之类的接口,那么像Serializable这样的接口的用途不是更容易理解吗?

之所以称为接口,是因为它是一个接口:

public interface Serializable {
}
如果调用诸如标记或指示符之类的接口,那么像Serializable这样的接口的用途不是更容易理解吗


事实上,这种接口(不定义任何方法的接口)通常被称为“标记接口”。

Serializable
是一种接口,其中没有任何方法或字段-

public interface Serializable {

}   
这样的接口不是更容易理解吗 如果调用它们(例如标记或指示器),是否可序列化

这个
Serializable
也被称为marker接口,它是编译器的一个指示器——如何处理实现类。
Serializable
接口是在
java
中引入的,用于在引入任何注释之前向
jvm
传递特殊指令。现在,类似的任务可以通过使用注释来执行(这里我不是说替换
Serializable
接口)。您可以将一些信息传递给编译器如何处理注释。

在Literature中称为marker interface(标记接口),但在code@JanneTind:那么?当
Serializable
被创建时,Java甚至没有注释,更不用说您提到的这个“标记”概念了。所以他们利用了他们所拥有的。这里没什么可看的,继续……为什么不保留一个字?@JanneTind:为什么不保留其他一百个设计决策中的任何一个?Gosling和crew和其他项目一样,都面临着同样的时间压力和限制。为此使用接口是完全合理的,所以他们这样做了,而不是创建其他东西。想想其他东西需要的所有管道:定义它的语法;用于检查类上是否存在的API;如果Java当时有注释,他们可能会使用注释来代替。但是他们用他们所拥有的。