有人可以告诉我序列化如何为一个对象工作。我尝试了谷歌搜索,但因为这个原因,我总是迷失在细节中。我只需要知道何时序列化一个对象,该对象的类具有私有/公共变量,静态变量和私有/公共方法。一切都被序列化或只是变量?使用许多将要序列化的方法来传递活动是否是一种不良习惯?序列化,在序列化对象中有很多方法是不好的
回答
只有对象的状态被序列化 - 换句话说,这些字段。这些方法本身不是序列化的。但是,生成的版本号也是该状态的有效部分,并且取决于所用的方法。诚然,您可以使用serialVersionUid
字段更改此行为 - 但这仍然很棘手。
个人而言,我强烈建议使用对使用Java二进制序列化 - 它结束了真正相当棘手的管理向后和向前兼容性。还有很多其他的序列化框架可用,这些框架通常比Java序列化需要更多的工作来开始,但最终会变得更具可移植性和可维护性。我个人是Protocol Buffers的粉丝,但我有偏见:)
@LouisWasserman:啊,当然是;)修正。 – 2013-02-11 18:17:50
谢谢,有道理。我只是想确保在使用serialVersionUid的时候,如果我添加了30个方法,它不会使序列化变得复杂或耗时 – Snake 2013-02-11 18:58:14
@Snake:它不会改变存储的数据,不会。 – 2013-02-11 19:18:46
- 1. 对象反序列化xml很好,但不是json
- 2. 序列化和反序列化.NET对象的最快方法
- 3. 序列化/反序列化大对象单次Vs多次序列化/反序列化小对象?
- 4. 序列化多个对象
- 5. 反序列化序列化对象
- 6. XML序列化:对象未序列化
- 7. 对象/类方法序列化?
- 8. 在PHP中将多个对象序列化为文件不能反序列化?
- 9. 对象不可序列化
- 10. 对象序列化
- 11. 对象序列化
- 12. 序列化对象
- 13. 对象序列化
- 14. 在Java中反序列化一个序列化的php对象
- 15. PHP:最好的方法[序列化,对象,Redis]
- 16. IllegalAccessException - 继承不可序列化的对象的序列化
- 17. 反序列化java中的很多对象?
- 18. 以XML格式序列化C#中多个对象的方法
- 19. 序列化和反序列化多个对象
- 20. 序列化对象列表
- 21. 序列化对象列表
- 22. 在WebApi方法中反序列化JSON对象列表
- 23. 对象不是JSON序列化
- 24. setAttribute:不可序列化的属性(Java对象序列化)
- 25. Spring:序列化引用了不可序列化bean的对象
- 26. 可能序列化一个不可序列化的对象?
- 27. Java-使用Xstream序列化不可序列化的对象
- 28. 在会话中传递序列化对象和非序列化对象之间有什么好处?
- 29. 在C++中序列化和反序列化对象
- 30. 在Swift中自动JSON序列化和反序列化对象
也许[这篇文章](http://docs.oracle.com/javase/7/docs/platform/serialization/spec/protocol.html)将有所帮助。还有[这里](http://stackoverflow.com/questions/14730150/how-does-java-serialise-the-implementationsof-methods-within-an-object/14730752#14730752)你有类似的问题。 – Pshemo 2013-02-11 18:17:15
谢谢你..好的链接 – Snake 2013-02-11 18:56:37