有人可以告訴我序列化如何爲一個對象工作。我嘗試了谷歌搜索,但因爲這個原因,我總是迷失在細節中。我只需要知道何時序列化一個對象,該對象的類具有私有/公共變量,靜態變量和私有/公共方法。一切都被序列化或只是變量?使用許多將要序列化的方法來傳遞活動是否是一種不良習慣?序列化,在序列化對象中有很多方法是不好的
回答
只有對象的狀態被序列化 - 換句話說,這些字段。這些方法本身不是序列化的。但是,生成的版本號也是該狀態的有效部分,並且取決於所用的方法。誠然,您可以使用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