`
tomotoboy
  • 浏览: 167312 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java中的Serializable接口作用

    博客分类:
  • Java
阅读更多
原文地址:http://blog.sina.com.cn/s/blog_3f4adefa010006bj.html

序列化是把一个对象的状态写入一个字节流的过程,它执行RMI,RMI允许一台机器上的JAVA对象调用不同机器上的JAVA对象方法,对象可以作为参数提供给那个远程方法,发送机序列化该对象并传送它,接收机执行反序列化。
序列化和反序列化的关系图表可形成包含循环引用的顺序图表。这是整个序列化的总体思想。
而Serializable接口属于支持序列化的一个接口,只有一个实现它的对象可以被序列化工具存储和回复,Serializable接口没有定义任何成员,只用来表示一个累可以被序列化,若该类可以序列化,那么它的所有子类都可以。
下面是关于序列化的一个实例:
  • 程序名称:SerializationDemo.java
  • 程序主题:实现对象的序列化和反序列化
  • 程序说明:该程序由实例化一个MyClass类的对象开始,该对象有三个实例变量,类型分别为String、int、double,是希望存储和恢复的信息

import java.io.*;
public class SerializationDemo{
  public static void main(String args[]){
         //Object serialization

	try{
	
		 MyClass object1=new MyClass("Hello",-7,2.7e10);		
		 System.out.println("object1:"+object1);
		 FileOutputStream fos=new FileOutputStream("serial");		
		 ObjectOutputStream oos=new ObjectOutputStream(fos);
		 oos.writeObject(object1);
		 oos.flush();		
		 oos.close();
	
	 }
	catch(Exception e){	
		 System.out.println("Exception during serialization:"+e);	
		 System.exit(0);
	
	 }


	//Object deserialization

	try{

		 MyClass object2;		
		 FileInputStream fis=new FileInputStream("serial");		
		 ObjectInputStream ois=new ObjectInputStream(fis);
		 object2=(MyClass)ois.readObject();		
		 ois.close();
		 System.out.println("object2:"+object2);
	}

	catch(Exception e){
	
		 System.out.println("Exception during deserialization:"+e);		
		 System.exit(0);
	
	 }

  }

}


class MyClass implements Serializable{
	 String s;	
	 int i;	
	 double d;
	 public MyClass(String s,int i,double d){	
	    this.s=s;	
	    this.i=i;	
	    this.d=d;	
	 }

	 public String toString(){	
	    return "s="+s+";i="+i+";d="+d;	
	 }

}



程序运行结果:object1和object2的实例变量是一样的,输出如下: 
object1:s=Hello;i=-7;d=2.7E10
object2:s=Hello;i=-7;d=2.7E10


分享到:
评论

相关推荐

    java中Serializable接口作用详解

    Java 中的 Serializable 接口作用详解 Java 中的 Serializable 接口是一个非常重要的接口,它允许对象被序列化,换句话说,就是将对象转换成字节序列,以便于存储或通过网络传输。Serializable 接口的作用主要体现...

    Java对象Serializable接口实现详解

    Serializable接口的主要作用是为了序列化Java对象,使得对象可以被写入文件或网络中,并在需要时可以被读取和反序列化回原来的对象状态。这对于Java编程来说非常重要,因为Java是一门面向对象的编程语言,对象作为其...

    Java_Serializable(序列化)的理解和总结

    在Java中,如果一个类实现了`Serializable`接口,那么该类的对象就可以被序列化。序列化的目的是为了能够持久地保存对象的状态,或者在网络中传递对象。 序列化主要关注的是对象的状态(即其实例变量),而不是其...

    java序列化(Serializable)的作用和反序列化.doc

    在Java中,通过实现`Serializable`接口,可以方便地进行对象的序列化操作。序列化的核心在于能够将对象的状态转换为可以存储或传输的形式,从而实现对象的持久化和远程通信等功能。 #### 二、序列化的应用场景 ...

    Serializable接口的作用_动力节点Java学院整理

    Serializable接口的作用 在 Java 中,Serializable 接口扮演着非常重要的角色,它允许对象被序列化和反序列化,实现对象的持久化存储和网络传输。本文将详细介绍 Serializable 接口的作用和实现原理,以及它在 Java...

    可序列化接口Serializable

    在Java编程语言中,`Serializable`接口是一个非常重要的概念,它是实现对象持久化的关键。本文将深入探讨`Serializable`接口的细节,以及与其相关的高级知识。 `Serializable`接口是Java中的一个标记接口,没有包含...

    java.io.Serializable序列化问题

    序列化的核心接口是 `java.io.Serializable`,它是一个标记接口,没有定义任何方法,用于标记可以被序列化的类。 #### 二、实现序列化的方法 为了使一个类支持序列化,需要让该类实现 `Serializable` 接口。实现这...

    java serializable 序列化与反序列化

    `Serializable`接口是Java提供的一个标记接口,用于实现对象的序列化。当一个类实现了这个接口,它的实例就可以被序列化。 **一、Java序列化** 1. **什么是序列化**:序列化是将对象的状态(属性和成员变量)转换...

    Intent传递对象Serializable

    在Android中,Intent的额外数据部分(extras)只能存储Parcelable或Serializable类型的对象,因此,当我们需要通过Intent传递自定义对象时,可以选择实现Serializable接口。 **步骤1:实现Serializable接口** 为了...

    Serializable java序列号

    在Java中,如果一个类需要支持序列化,那么该类需要实现`java.io.Serializable`接口,虽然这个接口没有定义任何方法,但是它的存在作为一个标记,表明该类的对象可以被序列化。 序列化的优点主要有以下几点: 1. **...

    Java API接口详述.rar

    1. `java.io.Serializable`: 使类的对象能够进行序列化,用于持久化数据或在网络中传输。 2. `java.lang.Cloneable`: 标记接口,表示对象可以被克隆。 3. `java.lang.Runnable`: 实现此接口的类可以作为线程执行的...

    java 中序列化NotSerializableException问题解决办法

    NotSerializableException 是 Java 中的一个异常,它发生在尝试序列化一个不implement Serializable 接口的对象时。今天,我们将讨论 Java 中序列化 NotSerializableException 问题的解决办法。 问题描述 --------...

    java中把对象转化为byte数组的方法.doc

    Serializable 接口是 Java 中的一个标记接口,用于标记某个类可以被序列化。想要将某个类的对象序列化,必须实现 Serializable 接口。 在 ByteToObject 方法中,我们首先创建了一个 ByteArrayInputStream 对象,并...

    学习Java接口的例题

    2. 实现接口:类使用`implements`关键字实现接口,并提供接口中所有方法的实现。 3. 默认方法:自Java 8起,接口可以包含默认实现,允许接口添加新方法而不破坏已有实现。 4. 接口继承:一个接口可以继承另一个接口...

    Java 串行化(序列化)Serializable/Externalizable

    **一、Serializable接口** `Serializable`是Java中的一个标记接口,没有包含任何方法。当一个类实现这个接口时,表明该类的对象可以被序列化。Java的序列化机制会遍历对象的所有字段,并将它们的值写入字节流。需要...

    析Android中的Serializable序列化.rar_Serializable _android

    在Android开发中,Serializable接口是实现对象序列化的重要方式,它是Java平台标准的一部分,但在Android环境中也有广泛的应用。本文将深入探讨Android中的Serializable序列化机制,包括其原理、使用场景以及注意...

    轉Serializable至Stream

    在Java编程中,`Serializable`接口是用于对象序列化的重要工具。对象序列化是指将一个对象的状态转换为字节流的过程,以便存储或通过网络进行传输。另一方面,`Stream`通常指的是I/O流,它是Java处理输入/输出数据的...

    JAVA常用API文档 中文完整版.zip

    Serializable接口则用于对象的序列化和反序列化。 2. **集合框架**:包括List、Set、Map等接口以及ArrayList、LinkedList、HashSet、HashMap等实现类。它们提供了数据存储和操作的各种方式,如添加、删除、查找和...

    2022年Java语言的接口与类型安全Java教程.docx

    1. 接口中所有方法默认都是抽象的(abstract)和公共的(public)。 2. 接口不能包含构造函数。 3. 接口可以包含静态常量(public static final)。 4. 类可以实现(implements)多个接口,实现多态性。 5. 接口间的...

Global site tag (gtag.js) - Google Analytics