Java 什么是ObjectStreamConstants.STREAM\u MAGIC?

Java 什么是ObjectStreamConstants.STREAM\u MAGIC?,java,serialization,magic-numbers,Java,Serialization,Magic Numbers,我在接口中提到,它在JDK源代码中定义如下: /** *写入流标头的幻数。 */ 最终静态短流_MAGIC=(短)0xaced; 这个神奇数字的意义是什么,它和Java序列化有什么关系 是否有任何特殊原因导致它是短的,并且具有值0xaced?我试图找到更多信息,但没有得到任何有助于我更好理解的信息。STREAM\u MAGIC表示序列化内容的开始。 您可以在查看中找到更多详细信息。如果您查看任何序列化输出的hexdump(Avi的链接中提供了一个示例),它将以ac ed开始,即ObjectSt

我在接口中提到,它在JDK源代码中定义如下:

/**
*写入流标头的幻数。
*/
最终静态短流_MAGIC=(短)0xaced;
这个神奇数字的意义是什么,它和Java序列化有什么关系


是否有任何特殊原因导致它是
短的
,并且具有值
0xaced
?我试图找到更多信息,但没有得到任何有助于我更好理解的信息。

STREAM\u MAGIC表示序列化内容的开始。
您可以在查看中找到更多详细信息。如果您查看任何序列化输出的hexdump(Avi的链接中提供了一个示例),它将以
ac ed
开始,即
ObjectStreamConstants.STREAM\u MAGIC
。感谢您的回复。我得到了,但是,我想打印“aced”。我该怎么做?我创建了一个实现序列化的简单类。然后使用
ObjectOutputStream
进行序列化。我在哪里可以看到“aced”。@CuriousMind使用以下代码:
ByteArrayOutputStream baos=newbytearrayoutputstream();ObjectOutputStream oos=新的ObjectOutputStream(BAS);oos.writeObject(thing);byte[]bytes=baos.toByteArray()
,然后将
字节
传递给
字节[]
到十六进制字符串转换器,该转换器可在中找到。@MultiplyByZer0:找到了。谢谢你的帮助