尽管java.io.Serializable接口public interface Serializable{}
令人惊讶地没有包含Java中的任何方法和字段,但是实现此接口的类却能够实现序列化和反序列化的功能(对象被序列化或反序列化的状态)。没有Java中的任何方法或字段,如何实现序列化和反序列化功能?
某些接口仅用作“标记”或“标志”。
通过反射访问UID和自定义读取器/写入器。
Serializable
是一个标记,JRE / JVM可以根据其存在来采取措施。
http://en.wikipedia.org/wiki/Marker_interface_pattern
问题内容: 为什么Java引入一些没有定义方法的接口?例如,,等等。 第二件事:在包中,定义了一个方法,没有身体,并从静态块调用,但不是抽象的,而是。为什么这样?以及为什么Java需要某种没有主体的方法从静态块中调用? 问题答案: 为什么Java引入一些没有定义方法的接口? 这称为标记或标记接口。这些不用于任何用途或操作。这些方法用于标记或标记类。这样就可以确定someclass是否是这些类的子级
我使用的界面看起来大致如下: 并且我目前正在使用一个匿名类来实现接口,但我并不关心这两种方法中的一种。大致如下: 现在,我已经在Java8中尽可能地使用新的lambda表达式,我想在这种情况下使用增加的简单性。毕竟,我只是在实现其中的一个方法,但由于接口中有两个方法,所以我不能在一个lambda表达式中使用它。
本文向大家介绍请解释为什么集合类没有实现Cloneable和Serializable接口?相关面试题,主要包含被问及请解释为什么集合类没有实现Cloneable和Serializable接口?时的应答技巧和注意事项,需要的朋友参考一下 考察点:JAVA集合 克隆(cloning)或者是序列化(serialization)的语义和含义是跟具体的实现相关的。因此,应该由集合类的具体实现来决定如何被克隆
问题内容: 首先,我阅读了埃里克森对“为什么不能在Java接口中定义静态方法?”的有用答复。。这个问题不是关于“为什么”的问题,而是关于“然后如何做”的问题。 编辑:我的原始示例不适当地,但我将其保留在下面。 虽然我现在确信在大多数情况下我想做的是过度矫kill过正,但在一种情况下可能需要这样做: 我再举一个例子。现在,让我们采用一个适合于查找表的复杂功能,例如Bessel函数。这必须进行初始化,
问题内容: 在Java has 方法中,但是,它仅在诸如或的关联容器中使用。为什么要这样设计?具有方法的界面看起来更优雅。 问题答案: 在我看来,主要的论据是,可以为任何Java对象计算出一个定义明确的默认值,以及一个同样定义明确的。根本没有充分的理由要保留所有对象的该功能,当然也有很多理由 不 保留此功能。因此,这本书毫无疑问。