`

Java序列化注意一些点

阅读更多
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-笔记
分享到:
评论

相关推荐

    java序列化和反序列化的方法

    序列化和反序列化的过程中,需要注意以下几点: * 序列化时,需要将对象的所有字段序列化,否则可能会导致反序列化失败。 * 序列化时,需要使用 ObjectOutputStream 将对象序列化为字节流。 * 反序列化时,需要使用...

    Java序列化

    Java序列化是Java平台中的一种标准机制,允许将对象的状态转换为...通过以上知识点的学习,你可以对Java序列化有深入的理解,无论是理论还是实践,都能为你在开发过程中处理对象持久化、数据传输等问题提供有力支持。

    java序列化全解

    Java序列化是Java平台中的一种核心机制,它允许对象的状态被转换成字节流,以便存储到磁盘、数据库,或者在网络中进行传输。这对于实现持久化、远程方法调用(RMI)以及Enterprise JavaBeans(EJB)等高级功能至关...

    java 序列化时排除指定属性

    Java序列化是强大而灵活的工具,但也需要注意隐私和性能问题。通过使用`transient`关键字、自定义序列化方法或第三方库,我们可以排除对象中不希望被序列化的属性。理解这些机制对于编写安全且高效的Java应用程序至...

    java 序列化代码示例

    下面我们将详细讨论Java序列化的用途、注意事项以及如何实现。 1. **序列化用途**: - **持久化存储**:将对象状态保存到硬盘上,方便下次加载使用。 - **网络传输**:在网络通信中,将对象转换为字节流,通过...

    java 对象的序列化与反序列化

    下面是一些关于序列化的重要知识点: 1. **序列化标识符(SerialVersionUID)**:Java允许你为每个可序列化的类定义一个唯一的`serialVersionUID`,默认是由JVM根据类的结构计算出来的。如果类的版本更新导致结构变化...

    java序列化实现演示

    Java序列化是Java平台中的一种标准机制,允许对象的状态被保存到磁盘或者在网络中进行传输,以便在后续的时间或地点恢复这些对象。这个过程包括两个主要操作:序列化(将对象转换为字节流)和反序列化(将字节流恢复...

    Java对象序列化标准最新版

    ### Java对象序列化标准知识点详解 #### 一、系统架构概览 **1.1 概览** Java 对象序列化是一种将Java对象的...以上内容涵盖了Java序列化标准的关键知识点,深入了解这些概念有助于更好地理解和应用Java序列化技术。

    Java序列化的机制和原理

    总之,Java序列化是一个强大的工具,它使得对象能够在不同的环境之间交换和恢复,但同时也需要注意安全问题,因为序列化可能暴露敏感信息。为了提高效率和安全性,有时可以考虑使用自定义的序列化方法或者其他的序列...

    java序列化和反序列化

    #### 五、序列化注意事项 - **安全性问题:** 反序列化可能存在安全风险,恶意构造的对象可能导致攻击。 - **版本兼容性:** 如果类结构发生变化,可能会导致序列化数据无法正确反序列化。 - **性能考虑:** 序列化...

    java serializable 序列化与反序列化

    **一、Java序列化** 1. **什么是序列化**:序列化是将对象的状态(属性和成员变量)转换为可以存储或传输的数据格式的过程。在Java中,通常是将对象转换为字节数组,以便写入磁盘或通过网络发送。 2. **为什么需要...

    Java实现序列化例子

    Java序列化是Java平台提供的一种将对象转换为字节流,以便存储到磁盘、数据库或网络中的机制。它是Java语言内置的一种特性,主要用于持久化数据,也可以在进程间传递对象,或者在网络上传输对象。在Java中,如果一个...

    Java_序列化的高级认识

    以下是从给定文件中提炼出的关于Java序列化的高级知识点: #### 序列化ID的问题 序列化ID,即`serialVersionUID`,是Java序列化机制中一个关键的概念。它是一个类的唯一标识符,用于在序列化和反序列化过程中确定...

    07-Java序列化面试题(10题)-新增.pdf

    Java序列化面试题(10题) 在 Java 中,序列化是一种用于处理对象流的机制,它可以将对象的内容进行流化,使其可以被读写和传输。下面是 10 个与 Java 序列化相关的面试题目: 1. 什么是 Java 序列化,如何实现 ...

    java自动序列化

    Java序列化是将对象转换为字节流的过程,目的是为了保存对象的状态以便稍后恢复或传输到其他地方。通过实现`Serializable`接口,一个Java对象就可以被序列化。这个接口是一个标记接口,没有定义任何方法,仅表示对象...

    Java 文件 序列化 读写

    以上就是Java文件序列化读写的详细知识点,包括序列化的目的、接口、过程、注意事项以及一些优化策略。通过理解和应用这些知识,开发者可以有效地管理对象的状态,实现持久化、网络传输等功能。

    java对象序列化和反序列化

    Java对象序列化与反序列化是Java编程中重要的概念,主要应用于数据持久化、网络传输以及存储等场景。本文将详细解析这两个概念及其在实际应用中的实现方式。 **一、Java对象序列化** 1. **定义**: Java对象序列化...

    java对象序列化.ppt

    需要注意的是,即使`transient`变量不被序列化,但它的引用如果指向一个可序列化的对象,那么这个对象仍会被序列化。 总结来说,Java对象序列化是将对象状态转换为字节流,便于存储和网络传输的关键技术。通过实现`...

    java 序列化 将实体类本地序列化

    Java序列化是Java平台中的一种标准机制,允许将对象的状态转换为字节流,以便可以存储这个状态(例如,到磁盘或通过网络传输),之后再恢复为原来的对象。这在许多场景下都非常有用,例如持久化数据、跨网络传输对象...

    Java对象序列化的秘密

    Java对象序列化是Java平台提供的一种机制,允许将对象的状态转换为字节流,以便存储在磁盘上、通过网络传输或在不同时间点恢复。这个过程涉及到将一个复杂的Java对象模型转换为简单的二进制表示,使得数据可以在不同...

Global site tag (gtag.js) - Google Analytics