磁力搜索网站 bt torrent search engine 推荐 每日更新  2021-08-01 更新
磁力巴士   WWW.EYH.BIZ   writeObject()中的第一个操作;并调用 defaultReadObject(),令其作为 readObject()的第一个操作。这些 都是不常见的调用方法。举个例子来说,当我们为一个 ObjectOutputStream 调用 defaultWriteObject()的 时候,而且没有为其传递参数,就需要采取这种操作,使其知道对象的句柄以及如何写入所有非 transient 的部分。这种做法非常不便。

transient 对象的存储与恢复采用了我们更熟悉的代码。现在考虑一下会发生一些什么事情。在 main()中会 创建一个 SerialCtl 对象,随后会序列化到一个 ObjectOutputStream 里(注意这种情况下使用的是一个缓冲 区,而非文件——与 ObjectOutputStream 完全一致)。正式的序列化操作是在下面这行代码里发生的: o.writeObject(sc);

其中,writeObject()方法必须核查 sc,判断它是否有自己的 writeObject()方法(不是检查它的接口——它

根本就没有,也不是检查类的类型,而是利用反射方法实际搜索方法)。若答案是肯定的,就使用那个方 法。类似的情况也会在 readObject()上发生。或许这是解决问题唯一实际的方法,但确实显得有些古怪。

版本问题 有时候可能想改变一个可序列化的类的版本(比如原始类的对象可能保存在数据库中)。尽管这种做法得到 了支持,但一般只应在非常特殊的情况下才用它。此外,它要求操作者对背后的原理有一个比较深的认识, 而我们在这里还不想达到这种深度。JDK 1.1 的 HTML 文档对这一主题进行了非常全面的论述(可从 Sun 公司 下载,但可能也成了 Java 开发包联机文档的一部分)。

10.9.3 利用“持久性” 一个比较诱人的想法是用序列化技术保存程序的一些状态信息,从而将程序方便地恢复到以前的状态。但在 具体实现以前,有些问题是必须解决的。如果两个对象都有指向第三个对象的句柄,该如何对这两个对象序

列化呢?如果从两个对象序列化后的状态恢复它们,第三个对象的句柄只会出现在一个对象身上吗?如果将 这两个对象序列化成独立的文件,然后在代码的不同部分重新装配它们,又会得到什么结果呢?

 
 

版权声明:本文为movih原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/movih/p/15060794.html