`
peonyzzdx
  • 浏览: 594478 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

序列化(一)

阅读更多
序列化定义:
       把Java对象转换为字节序列的过程称为对象的序列化。 
  把字节序列恢复为Java对象的过程称为对象的反序列化

   (将数据分解成字节流,以便存储在文件中或在网络上传输。反序列化就是打开字节流并重构对象)

序列化的目的
  1、以某种存储形式使自定义对象持久化

  2、将对象从一个地方传递到另一个地方
  
    3、使程序更具维护性

对象序列化包括如下步骤:

  1)创建一个对象输出流,它可以包装一个其他类型的目标输出流,如文件输出流;

  2)通过对象输出流的writeObject()方法写对象。

对象反序列化的步骤如下:

  1)创建一个对象输入流,它可以包装一个其他类型的源输入流,如文件输入流;

  2)通过对象输入流的readObject()方法读取对象。

当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个Java对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象。

可以被序列化的内容:
 
如果想保护某些属性不被序列化,使用transient
示例如下:

  
  • 大小: 917.8 KB
  • 大小: 988.2 KB
分享到:
评论

相关推荐

    序列化一个类_php的类的序列化脚本_

    在PHP编程中,序列化是一种将对象转换为可存储或传输格式的过程,通常用于数据库存储、文件保存或者网络传输。这个过程将对象的状态(包括它的属性和方法)转化为字符串,以便于之后的反序列化,即恢复原始对象。在...

    ASPNET中JSON的序列化和反序列化的方法

    例如,序列化一个.NET的`DateTime`对象到JSON字符串时,你可能会得到一个形如“/Date(700000+0500)/”的字符串,这表示时间戳以及时区信息。反序列化时,你需要将这个字符串转换回`DateTime`对象,这通常需要自定义...

    基于boost的序列化与反序列化

    例如,你可以序列化一个包含`std::vector`,`std::map`,或者其他STL容器的类实例。 Boost.Serialization提供了两种主要的序列化方式:文本序列化和二进制序列化。文本序列化通常更易于阅读和调试,但占用的存储...

    序列化与反序列化

    要序列化一个Java对象,我们可以创建一个`ObjectMapper`实例,然后调用`writeValueAsString()`方法: ```java ObjectMapper mapper = new ObjectMapper(); String jsonString = mapper.writeValueAsString...

    hashtable序列化与反序列化

    要序列化一个`HashTable`对象,我们需要执行以下步骤: 1. 确保`HashTable`类或包含它的类实现了`Serializable`接口。例如: ```java public class MyHashTable implements Serializable { private Hashtable, ...

    《C#序列化和反序列化之一-二进制序列化》源代码

    当你想要序列化一个对象时,你需要创建一个`BinaryFormatter`实例,然后使用它的`Serialize`方法,传入一个`Stream`对象,通常是`FileStream`。反序列化时,同样使用`BinaryFormatter`的`Deserialize`方法,从已序列...

    自己写的一个序列化和反序列化的例子

    当你序列化一个对象时,Java会把该对象的所有属性(包括其引用的对象)都转换成字节流,以便于存储或者在网络上传输。 在代码中,你可以使用`ObjectOutputStream`来序列化对象。例如: ```java import java.io.*; ...

    二进制序列化和XML序列化

    例如,要序列化一个名为`Person`的对象,可以这样做: ```csharp [Serializable] public class Person { public string Name { get; set; } public int Age { get; set; } } // 二进制序列化 using (var stream ...

    XmlDemoTranfer Xml序列化与反序列化

    要序列化一个对象,你需要创建一个`XmlSerializer`实例,指定要序列化的类型,然后调用`Serialize`方法,将对象写入一个文本流或文件。反序列化则通过调用`Deserialize`方法,从XML文本流或文件中恢复对象。 2. **...

    文件流序列化

    要序列化一个对象到文件流,首先需要创建一个TFileStream对象,然后使用对象的Write方法将数据写入流。反序列化时,从流中读取数据并恢复对象状态。 以下是使用Delphi进行文件流序列化的步骤: 1. **创建...

    java中的序列化与反序列化

    相反,要反序列化一个对象,可以使用`ObjectInputStream`从输入流中读取对象。以下是一个反序列化的示例: ```java import java.io.FileInputStream; import java.io.ObjectInputStream; public class ...

    delphi_BaseObject_json序列化反序列化1

    为了序列化一个BaseObject实例,我们需要定义一个方法,遍历对象的所有属性,并将它们转化为JSON键值对。反序列化时,我们读取JSON字符串,解析成一个SO对象,然后遍历其属性,赋值给BaseObject的相应字段。 2. ** ...

    java自动序列化

    3. `java.io.NotSerializableException`: 当尝试序列化一个未实现Serializable接口的对象时抛出的异常。 4. `sun.misc.BASE64Encoder`和`sun.misc.BASE64Decoder`(非标准API):用于将字节数组编码为Base64字符串,...

    Java 多次序列化对象到同壹個文件及反序列化的问题

    2. **使用`ObjectOutputStream.writeUnshared()`**:此方法序列化一个对象,但不会写入其类描述信息,适合序列化多个对象到同一文件,避免覆盖前面的类描述信息。不过,这种方法需要配合`ObjectInputStream....

    使用XStream序列化/反序列化对象

    序列化一个`Team`对象会生成一个包含多个`Person`元素的XML文档,而反序列化则会恢复整个团队的结构。 使用XStream的一个主要优点是其对类型安全性的支持。由于XStream使用Java类型信息来构建XML,因此在反序列化时...

    java 对象序列化

    序列化一个对象可以使用`ObjectOutputStream`类的`writeObject()`方法: ```java MyClass obj = new MyClass(); ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("file.ser")); oos....

    图形的序列化MFC源代码

    例如,当你序列化一个矩形时,你需要写出它的左上角和右下角坐标,以及填充色和边框色等信息。反序列化时,则读取这些数据并根据它们重新创建矩形。 为了支持多种图形,`CGraph`可能需要包含一个图形容器,用于存储...

    基于C#+XML实现的对象序列化与反序列化的程序例子代码

    为了序列化一个对象,我们需要定义一个类并标记它为可序列化,使用`[Serializable]`特性。例如: ```csharp [Serializable] public class Person { public string Name { get; set; } public int Age { get; set;...

    iOS归档(序列化与反序列化)

    要序列化一个对象,该对象必须遵循 `NSCoding` 协议。该协议定义了两个必须实现的方法:`encodeWithCoder:` 和 `initWithCoder:`。前者用于编码对象,后者用于解码。 ```swift class CustomObject: NSObject, ...

    C#_List 的序列化.doc

    下面是一个简单的示例代码,演示如何序列化一个 List<T> 对象: ```csharp using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Serialization; using ...

Global site tag (gtag.js) - Google Analytics