有人可以告訴我序列化如何爲一個對象工作。我嘗試了谷歌搜索,但因爲這個原因,我總是迷失在細節中。我只需要知道何時序列化一個對象,該對象的類具有私有/公共變量,靜態變量和私有/公共方法。一切都被序列化或只是變量?使用許多將要序列化的方法來傳遞活動是否是一種不良習慣?序列化,在序列化對象中有很多方法是不好的
回答
只有對象的狀態被序列化 - 換句話說,這些字段。這些方法本身不是序列化的。但是,生成的版本號也是該狀態的有效部分,並且取決於所用的方法。誠然,您可以使用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. PHP是否序列化對象方法?
- 3. 序列化和反序列化.NET對象的最快方法
- 4. 加速系列化和很多我使用升壓序列化對象序列
- 5. 序列化/反序列化大對象單次Vs多次序列化/反序列化小對象?
- 6. 序列化具有不可序列化父類的對象
- 7. 有沒有一種方法序列化類(對象)作爲序列化程序中的嵌套對象?
- 8. Java - 序列化對象中的序列化對象的問題
- 9. 序列化多個對象
- 10. 序列化多個對象
- 11. XML序列化:對象未序列化
- 12. 反序列化序列化對象
- 13. 無法序列化對象
- 14. 將方法添加到已序列化的對象,但不需要序列化
- 15. 如何在java中序列化/反序列化對象列表?
- 16. 對象/類方法序列化?
- 17. 在PHP中將多個對象序列化爲文件不能反序列化?
- 18. 對象不可序列化
- 19. 序列化對象
- 20. 序列化對象
- 21. 對象序列化
- 22. 對象序列化
- 23. 對象序列化
- 24. 在Java中反序列化一個序列化的php對象
- 25. PHP:最好的方法[序列化,對象,Redis]
- 26. 可序列化對象的組合是否也可序列化?
- 27. 反序列化java中的很多對象?
- 28. IllegalAccessException - 繼承不可序列化的對象的序列化
- 29. 以XML格式序列化C#中多個對象的方法
- 30. 序列化對象列表
也許[這篇文章](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