[英]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.