`
wuhaidong
  • 浏览: 361824 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

对象系列化

    博客分类:
  • SE
阅读更多

 

系列化的过程就是对象写入字节流和从字节流中读取对象.

 

将对象状态转换成字节流之后,可以用java.io包中的各种字节流类将其保存到文件中,管理到另一线程中或通过网络连接将对象数据发送到另一主机.(XML系列化指的是把对象转换成XML数据,传输到目的地后再把XML数据反序列化为对象)

 

对象系列化可以实现分布式对象.RMI要利用对象系列化运行运程主机上的服务,就像在本地机上运行对象时一样.

 

Java对象系列化不仅保留一个对象的数据,而且递归保存对象引用的每个对象的数据.可以将整个对象层次希尔字节流中,可以保存在文件中或在网络连接上传递.利用对象系列化可以进行对象的“深复制”,即复制对象本身及引用的对象本身.系列化一个对象可能得到整个对象系列.

 

Java系列化比较简单,实现Serializable接口的类对象可以转换成字节流或从字节流恢复,不需要在类中增加任何代码.只有极少数情况下才需要定制代码保存或恢复对象状态.

 

Serializable是标志性接口,不具有方法.

 

注意:不是每个类都可系列化,有些类是不能系列化的,例如涉及吸纳长的类与特定JVM有非常复杂的关系.

 

Java库中的类,String,都实现了Serializable 接口,所以它们都可以进行Serialization操作.

对一个对象进行Serialization 操作时,不仅会把对象在内存中的数据保存下来,还会把对象中所包含的可Serialization成员对象也保存下来,.如果对象中包含了没有实现Serializable接口的成员对象,那将在尝试对对象进行Serializable操作时,将发生错误!

对一个Serializable对象进行次第读取时,并不会调用任何构造函数(包含default函数).这是因为对象中的所有数据都是通过InputStream读取的数据来恢复的,所有不用通过构造函数来进行初始化.

进行系列读取时,在执行读取操作的class中一定要能找到相应的class文件.

 

 

系列化:将数据分解成字节流,以便存储在文件中或在网络上传输.

反序列化:打开字节流并重构对象.

 

对象系列化不仅要将基本数据类型转换成字节表示,有时还要恢复数据.恢复数据要求有恢复数据的对象实例.ObjectOutputStream中的系列化过程与字节流连接,包含对象类型和版本信息.反序列化时,JVM用头信息生成对象实例,然后将对象字节流中的数据复制到对象数据成员中.

 

对象系列化:

 

 

FileOutputStream f=new FileOutputStream("D:\\simple.txt");
ObjectOutputStream s=new ObjectOutputStream(f);
s.writeObject("Today");
s.writeObject(new Date());
s.flush();//在方法返回前显式清空输出缓冲区!

 

对象反序列化:

FileInputStream in=new FileInputStream("D:\\simple.txt");
ObjectInputStream s=new ObjectInputStream(in);
String today=(String)s.readObject();
Date data=(Date)s.readObject();
System.out.println(today);
System.out.println(data);
 

 

分享到:
评论

相关推荐

    MapReduce实现对象系列化案例

    wordcount、对象系列化

    C#对象三种形式的序列化和反序列化

    在C#编程中,序列化和反序列化是将对象的状态转换为可存储或传输的形式,然后恢复为原始对象的过程。这在数据持久化、网络通信以及跨应用程序域共享数据时非常有用。本主题将详细探讨C#中的三种序列化方式:二进制...

    WPF 对象初始化器_1 对象初始化器_1

    对象初始化器的基本语法是在创建对象后紧跟一对大括号`{}`,其中包含一系列的属性名和对应的初始值。 **示例**: ```csharp Person person = new Person { Name = "Tom", Age = 25 }; ``` 在上面的例子中,`Person...

    Java对象序列化标准最新版

    序列化流由一系列元素组成,包括对象类型、对象状态等信息。 **6.3 流协议版本** 序列化流支持不同的版本。不同的版本可能会有一些细微的区别,以适应不同的需求。 **6.4 语法格式** 序列化流的语法格式定义了...

    C#对象序列化与反序列化

    - **说明**:XML序列化提供了一系列的特性来控制序列化的过程。 - **`[XmlElement]`**:默认情况下,使用此特性表示该成员将作为XML元素序列化。 - **`[XmlAttribute]`**:表示该成员将作为XML属性序列化。 - **`...

    可视化视觉对象.zip

    本压缩包“可视化视觉对象.zip”是专门为Power BI设计的一系列自定义可视化组件,旨在扩展其内置图表类型,提供更丰富、更个性化的数据展示方式。下面将详细介绍Power BI的可视化视觉对象以及如何使用它们。 1. **...

    系列化和反序列化的一个文砀

    在IT行业中,序列化和反序列化是两个关键的概念,特别是在数据存储、网络通信和对象持久化等场景中。它们是计算机科学中的重要技术,帮助我们处理和传递数据。 序列化是指将对象的状态转化为可存储或可传输的形式,...

    Power BI 可视化视觉对象包

    二是视觉对象包,这是这个资源的核心,包含了一系列可导入Power BI的定制化视觉效果。 压缩包子文件的文件名称“可视化视觉对象”暗示了包中可能包含多种不同类型的视觉对象,如柱状图、折线图、饼图、地图、树状图...

    javascript:对象化编程

    ### JavaScript:对象化编程 在探讨JavaScript中的对象化编程之前,我们先来了解下什么是对象化编程以及它在JavaScript中的具体应用。 #### 对象化编程概述 对象化编程(Object-Oriented Programming, OOP)是一...

    java系列化为xml对象。

    在Java编程中,序列化是将对象的状态转换成可以存储或传输的形式的过程。在这个场景下,我们关注的是如何将Java对象转换成XML或JSON格式,这两种格式广泛用于数据交换和网络通信。XML(eXtensible Markup Language)...

    C# 单文件存放多个序列化对象

    在C#编程中,序列化是一个非常重要的概念,它允许我们将对象的状态转化为可存储或可传输的数据格式,如XML、JSON或二进制。在某些场景下,我们可能需要在一个文件中存储多个序列化的对象,这可以有效地节省磁盘空间...

    php面向对象系列(完整)

    《PHP面向对象系列(完整)》是一份涵盖了2010年PHP面向对象编程的精华内容,主要包括了PHP 5.0中的多态性实现、PHP对象相关知识、PHP魔术函数等多个重要主题。以下是这些文档可能包含的关键知识点的详细解析: 1. **...

    标准化、模块化、系列化.doc

    《标准化、模块化、系列化》 标准化是现代工业生产和社会活动中的重要基石,旨在通过制定共同的规则和规范,提升效率,降低成本,促进技术进步和国际贸易。标准是一种经过协商一致并由公认机构批准的文件,它基于...

    天轰穿系列教程之-16利用构造函数初始化对象

    天轰穿系列教程之-16利用构造函数初始化对象天轰穿系列教程之-16利用构造函数初始化对象天轰穿系列教程之-16利用构造函数初始化对象天轰穿系列教程之-16利用构造函数初始化对象天轰穿系列教程之-16利用构造函数初始...

    Java对象序列化

    ### Java对象序列化详解 #### 一、Java对象序列化概念 Java对象序列化是指将一个Java对象的状态信息转换成可以存储或传输的形式的过程。在这个过程中,对象的信息被编码成一系列字节,以便可以在文件系统中保存...

    面向对象方法与结构化方法

    相比之下,结构化方法侧重于过程抽象和模块化,将问题分解为一系列可执行的过程,体现了“自顶向下、逐步细化”的设计思路。 #### 2.2 概念或术语名词的不同 面向对象方法引入了一套全新的概念体系,包括对象、类...

    流程控制 网络编程 对象序列化

    ### 流程控制、网络编程与对象序列化:Java中的关键技术点 #### 一、对象序列化:数据的持久化与传输 **1.1 序列化目标** 对象序列化是Java中一种用于将对象状态转换为可以存储或传输的形式的过程。其主要目标有...

    面向对象技术和可视化建模

    面向对象技术是一种编程范式,它强调将程序设计成一系列的对象集合,每个对象都可以接收其他对象发送的消息、处理数据、并向其他对象发送消息。面向对象技术的核心在于封装、继承和多态三大特性,它们为软件开发提供...

    产品的系列化设计教材.pptx

    产品系列化设计的对象涵盖了日常生活的各个领域,从文具用品到更复杂的技术产品。 在系列化设计中,核心目标是服务于人,通过科学技术创造满足人类生活和工作需求的物品。设计旨在实现人与物、人与环境、人与人、人...

Global site tag (gtag.js) - Google Analytics