【发布时间】:2017-01-16 14:19:37
【问题描述】:
我已经完成了以下教程:
http://www.javaworld.com/community/node/2915
看完上面的文章,我觉得,不可能 写一个 Marker 接口,因为,你怎么能指示编译器,那个,什么标签, 它嵌入到标记接口的 .class 文件中。
如果我错了,请纠正我。 干杯:)
【问题讨论】:
-
什么?抱歉,但我无法解析“你如何指示编译器,thta,什么标签,它嵌入到你的类的 .class 文件中。”你能换个说法吗?
-
是的,让我的问题更清楚。
-
还是不太清楚:这和序列化有什么关系?您只需询问标记接口,这不一定与序列化有关(这只是标记接口的一种用途)。另外:您所说的“标签”是什么? Java 中没有这样的东西。
-
这里的标签是十六进制代码AC ED,它被添加到实现Serializable接口的那个类的.class文件中。因此,JVM 以一种特殊的方式处理这个类文件(可能是一些繁重的资源分配工作),因为这个类的实例可能被序列化。对于普通类,它添加了 CA FE 十六进制位。
-
据我了解这篇文章,AC ED 被添加到实例的序列化形式中,而不是 .class 文件中。每个类文件都应该以 0xCAFEBABE 开头:java.sun.com/docs/books/jvms/second_edition/html/…
标签: java serialization