繁体   English   中英

序列化相同的对象并观察不同的结果

[英]Serialization same object and observe different result

我想知道为什么当我使用table序列化内存中的同一对象时:

ByteArrayOutputStream byteOutput = new ByteArrayOutputStream();
        ObjectOutputStream stream = new ObjectOutputStream(byteOutput);
stream.writeObject(m.view()); //view return a string


        stream.flush();
        stream.close();
        byteOutput.flush();
        byteOutput.close(); 

并且我运行了几次程序,得到了不同的结果(虽然差别不大,但仍然有所不同)

execution 1 :4497
execution 3 :4500
execution 4 :4500
execution 5 :4494 

m:是包含其他类的另一个对象的对象。 我不能在这里列出所有类,它是一个大型框架,序列化的string是相同的!

假设您的对象是代码中的m ,看来您有不同的状态( overhead )。 由于序列化是递归的,因此不仅您的对象,而且包含的所有其他对象也必须相同。

请在m上发布更多信息,并将其与overhead以获得更详尽的答案。

什么你的执行之间的不同,你用当前的时间在你的对象的例子吗?

您可能会向我们展示更多背景信息,或者尝试自己找出有什么不同,但是只要您说没什么不同,但结果是您将找不到解释...

尝试减少问题,您说m.view()总是产生相同的结果,您怎么知道? 如果始终返回相同的结果,则将结果硬编码为字符串,并向我们显示多次序列化的同一字符串会产生不同的结果...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM