1.序列化ID的问题:
标示了版本号,版本号一致才能反序列化成功。修改代码同时要跟新版本号,以确保另一端
能够识别错误的版本,然后进行修成。
生成方法:固定和随机
2.序列化只会序列化非transit的实例变量,不会序列化静态变量,因为他是属于类的。
3.transit的实例变量和没有实现Serializable接口的父类成员不会被序列化。
4.通过readObject,writeObject定义自己的序列化方式,比如一个链表类,和需要
加密特殊处理的字段。
5.同一对象两次写入文件,第一次序列化完整的对象,第二次只序列化了一个引用,
所以反序列化之后二者是同一个对象。
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("result.obj"));
Test test = new Test();
test.i = 1;
out.writeObject(test);
out.flush();
test.i = 2;
out.writeObject(test);
out.close();
ObjectInputStream oin = new ObjectInputStream(new FileInputStream(
"result.obj"));
Test t1 = (Test) oin.readObject();
Test t2 = (Test) oin.readObject();
System.out.println(t1.i); //2
System.out.println(t2.i); //2
System.out.println(t1 == t2); //true
读
http://www.ibm.com/developerworks/cn/java/j-lo-serial/index.html?ca=drs-笔记
分享到:
相关推荐
序列化和反序列化的过程中,需要注意以下几点: * 序列化时,需要将对象的所有字段序列化,否则可能会导致反序列化失败。 * 序列化时,需要使用 ObjectOutputStream 将对象序列化为字节流。 * 反序列化时,需要使用...
Java序列化是Java平台中的一种标准机制,允许将对象的状态转换为...通过以上知识点的学习,你可以对Java序列化有深入的理解,无论是理论还是实践,都能为你在开发过程中处理对象持久化、数据传输等问题提供有力支持。
Java序列化是Java平台中的一种核心机制,它允许对象的状态被转换成字节流,以便存储到磁盘、数据库,或者在网络中进行传输。这对于实现持久化、远程方法调用(RMI)以及Enterprise JavaBeans(EJB)等高级功能至关...
Java序列化是强大而灵活的工具,但也需要注意隐私和性能问题。通过使用`transient`关键字、自定义序列化方法或第三方库,我们可以排除对象中不希望被序列化的属性。理解这些机制对于编写安全且高效的Java应用程序至...
下面我们将详细讨论Java序列化的用途、注意事项以及如何实现。 1. **序列化用途**: - **持久化存储**:将对象状态保存到硬盘上,方便下次加载使用。 - **网络传输**:在网络通信中,将对象转换为字节流,通过...
下面是一些关于序列化的重要知识点: 1. **序列化标识符(SerialVersionUID)**:Java允许你为每个可序列化的类定义一个唯一的`serialVersionUID`,默认是由JVM根据类的结构计算出来的。如果类的版本更新导致结构变化...
Java序列化是Java平台中的一种标准机制,允许对象的状态被保存到磁盘或者在网络中进行传输,以便在后续的时间或地点恢复这些对象。这个过程包括两个主要操作:序列化(将对象转换为字节流)和反序列化(将字节流恢复...
### Java对象序列化标准知识点详解 #### 一、系统架构概览 **1.1 概览** Java 对象序列化是一种将Java对象的...以上内容涵盖了Java序列化标准的关键知识点,深入了解这些概念有助于更好地理解和应用Java序列化技术。
总之,Java序列化是一个强大的工具,它使得对象能够在不同的环境之间交换和恢复,但同时也需要注意安全问题,因为序列化可能暴露敏感信息。为了提高效率和安全性,有时可以考虑使用自定义的序列化方法或者其他的序列...
#### 五、序列化注意事项 - **安全性问题:** 反序列化可能存在安全风险,恶意构造的对象可能导致攻击。 - **版本兼容性:** 如果类结构发生变化,可能会导致序列化数据无法正确反序列化。 - **性能考虑:** 序列化...
**一、Java序列化** 1. **什么是序列化**:序列化是将对象的状态(属性和成员变量)转换为可以存储或传输的数据格式的过程。在Java中,通常是将对象转换为字节数组,以便写入磁盘或通过网络发送。 2. **为什么需要...
Java序列化是Java平台提供的一种将对象转换为字节流,以便存储到磁盘、数据库或网络中的机制。它是Java语言内置的一种特性,主要用于持久化数据,也可以在进程间传递对象,或者在网络上传输对象。在Java中,如果一个...
以下是从给定文件中提炼出的关于Java序列化的高级知识点: #### 序列化ID的问题 序列化ID,即`serialVersionUID`,是Java序列化机制中一个关键的概念。它是一个类的唯一标识符,用于在序列化和反序列化过程中确定...
Java序列化面试题(10题) 在 Java 中,序列化是一种用于处理对象流的机制,它可以将对象的内容进行流化,使其可以被读写和传输。下面是 10 个与 Java 序列化相关的面试题目: 1. 什么是 Java 序列化,如何实现 ...
Java序列化是将对象转换为字节流的过程,目的是为了保存对象的状态以便稍后恢复或传输到其他地方。通过实现`Serializable`接口,一个Java对象就可以被序列化。这个接口是一个标记接口,没有定义任何方法,仅表示对象...
以上就是Java文件序列化读写的详细知识点,包括序列化的目的、接口、过程、注意事项以及一些优化策略。通过理解和应用这些知识,开发者可以有效地管理对象的状态,实现持久化、网络传输等功能。
Java对象序列化与反序列化是Java编程中重要的概念,主要应用于数据持久化、网络传输以及存储等场景。本文将详细解析这两个概念及其在实际应用中的实现方式。 **一、Java对象序列化** 1. **定义**: Java对象序列化...
需要注意的是,即使`transient`变量不被序列化,但它的引用如果指向一个可序列化的对象,那么这个对象仍会被序列化。 总结来说,Java对象序列化是将对象状态转换为字节流,便于存储和网络传输的关键技术。通过实现`...
Java序列化是Java平台中的一种标准机制,允许将对象的状态转换为字节流,以便可以存储这个状态(例如,到磁盘或通过网络传输),之后再恢复为原来的对象。这在许多场景下都非常有用,例如持久化数据、跨网络传输对象...
Java对象序列化是Java平台提供的一种机制,允许将对象的状态转换为字节流,以便存储在磁盘上、通过网络传输或在不同时间点恢复。这个过程涉及到将一个复杂的Java对象模型转换为简单的二进制表示,使得数据可以在不同...