WEB开发网
开发学院软件开发Java 关于 Java 对象序列化您不知道的 5 件事 阅读

关于 Java 对象序列化您不知道的 5 件事

 2010-05-05 00:00:00 来源:WEB开发网   
核心提示:数年前,当和一个软件团队一起用 Java 语言编写一个应用程序时,关于 Java 对象序列化您不知道的 5 件事,我体会到比一般程序员多知道一点关于 Java 对象序列化的知识所带来的好处,大约一年前,以便存储或传输的机制,以后,一个负责管理应用程序所有用户设置的开发人员,决定将用户设置存储在一个 Hashtable

数年前,当和一个软件团队一起用 Java 语言编写一个应用程序时,我体会到比一般程序员多知道一点关于 Java 对象序列化的知识所带来的好处。

大约一年前,一个负责管理应用程序所有用户设置的开发人员,决定将用户设置存储在一个 Hashtable 中,然后将这个 Hashtable 序列化到磁盘,以便持久化。当用户更改设置时,便重新将 Hashtable 写到磁盘。

这是一个优雅的、开放式的设置系统,但是,当团队决定从 Hashtable 迁移到 Java Collections 库中的 HashMap 时,这个系统便面临崩溃。

Hashtable 和 HashMap 在磁盘上的格式是不相同、不兼容的。除非对每个持久化的用户设置运行某种类型的数据转换实用程序(极其庞大的任务),否则以后似乎只能一直用 Hashtable 作为应用程序的存储格式。

团队感到陷入僵局,但这只是因为他们不知道关于 Java 序列化的一个重要事实:Java 序列化允许随着时间的推移而改变类型。当我向他们展示如何自动进行序列化替换后,他们终于按计划完成了向 HashMap 的转变。

本文是本系列的第一篇文章,这个系列专门揭示关于 Java 平台的一些有用的小知识 — 这些小知识不易理解,但对于解决 Java 编程挑战迟早有用。

将 Java 对象序列化 API 作为开端是一个不错的选择,因为它从一开始就存在于 JDK 1.1 中。本文介绍的关于序列化的 5 件事情将说服您重新审视那些标准 Java API。

Java 序列化简介

Java 对象序列化是 JDK 1.1 中引入的一组开创性特性之一,用于作为一种将 Java 对象的状态转换为字节数组,以便存储或传输的机制,以后,仍可以将字节数组转换回 Java 对象原有的状态。

1 2 3 4 5 6  下一页

Tags:关于 Java 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接