`
diaolanshan
  • 浏览: 175765 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Serializable作用

    博客分类:
  • JAVA
阅读更多

      没有implements Serializable,你就不能通过rmi(包括ejb)提供远程调用。 
      serialization 允许你将实现了Serializable接口的对象转换为字节序列,这些字节序列可以被完全存储以备以后重新生成原来的对象。
      serialization不但可以在本机做,而且可以经由网络操作(就是猫小说的RMI)。这个好处是很大的----因为它自动屏蔽了操作系统的差异,字节顺序等。比如,在Window平台生成一个对象并序列化之,然后通过网络传到一台Unix机器上,然后可以在这台Unix机器上正确地重构这个对象。
Object serialization主要用来支持2种主要的特性:
     1.Java的RMI(remote method invocation).RMI允许象在本机上一样操作远程机器上的对象。当发送消息给远程对象时,就需要用到serializaiton机制来发送参数和接收返回直。
      2.Java的JavaBeans. Bean的状态信息通常是在设计时配置的。Bean的状态信息必须被存起来,以便当程序运行时能恢复这些状态信息。这也需要serializaiton机制。

    下面是关于serializable的一个例子,如果MyClass不实现serializable,程序将抛出异常。

 

import java.io.*;

public class SerializationDemo{
        public static void main(String args[]){
// 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);
    }
// 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);
    }
    }
}

------MyClass.java

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;
    }
}

 
总之如果在网络的环境下做类传输,应该还是应该implements Serializable.

 

 

分享到:
评论

相关推荐

    Serializable在C#中的作用.NET 中的对象序列化

    ### C#中Serializable的作用与对象序列化详解 #### 一、引言 在现代软件开发中,特别是基于.NET框架的应用程序开发中,对象序列化是一项非常重要的技术。它允许将对象的状态转换为一种持久的形式(如文件或网络传输...

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

    ### Java序列化(Serializable)的作用与反序列化详解 #### 一、序列化的概念 序列化是指将程序中的对象转换为一系列字节流的过程,主要用于保存对象的状态或在网络之间传输对象。序列化的主要目的是为了能够持久化...

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

    ### Java序列化(Serializable)的作用与反序列化详解 #### 一、序列化是什么? 序列化是指将程序中的对象转换为字节流的过程,从而方便存储或传输这些对象。通常,序列化用于将对象的状态(即其实例变量的值,而非...

    [Serializable]在C_中的作用-NET_中的对象序列化

    【Serializable]在C#中的作用主要涉及到.NET框架中的对象序列化技术。对象序列化是将一个对象的状态转换为可存储或可传输的形式的过程,而[Serializable]是C#中用于标记一个类,表明该类的对象可以被序列化的特性。...

    java中Serializable接口作用详解

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

    序列化类的作用Serializable

    在Java编程语言中,序列化(Serialization)是一个关键的概念,主要应用于对象的持久化存储、网络传输以及跨进程通信等场景。...这对于数据持久化、网络通信以及分布式系统中的对象交换都有着至关重要的作用。

    java.io.Serializable序列化问题

    #### 一、序列化的概念与作用 在 Java 编程语言中,序列化是一种将对象的状态(即成员变量的值)转换为可以存储或传输的形式的过程。通常,这种形式是字节流,但也可以是其他格式,如 XML 或 JSON 等。序列化的主要...

    Java对象Serializable接口实现详解

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

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

    这通常意味着在类声明中添加`implements Serializable`。然后,可以使用`ObjectOutputStream`将对象写入文件,如下所示: - 创建`FileOutputStream`以指向要保存对象的文件。 - 使用`FileOutputStream`创建`...

    Android Parcelable与Serializable详解及区别

    Serializable的作用是为了保存对象的属性到本地文件、数据库、网络流、rmi以方便数据传输,当然这种传输可以是程序内的也可以是两个程序间的。而Android的Parcelable的设计初衷是因为Serializable效率过慢,为了在...

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

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

    Serializable序列化

    了解序列化的作用和流程对于任何Java开发者来说都是至关重要的。 首先,我们来看一下为什么要进行序列化。序列化的最大好处在于能够将对象的状态(即它的属性)保存下来。这使得我们可以在程序的不同时间点或在不同...

    Serializable-master.zip

    1. serialVersionUID 的作用: `serialVersionUID` 是Java序列化机制中的一个关键元素,它是一个长整型字段,用于版本控制。当一个类被序列化时,Java会根据类的结构(如字段、方法等)生成一个唯一的`...

    Java序列化(Serializable)与反序列化_.docx

    ### Java序列化(Serializable)与反序列化详解 #### 序列化概念与应用场景 序列化是指将程序中的对象转换为一系列字节序列的过程,主要用于保存对象的状态以便将来使用或者在网络之间传输对象。Java提供了内置的...

    Java序列化(Serializable)与反序列化__1.docx

    3. RMI(Remote Method Invocation):远程方法调用需要在不同进程中传递对象,序列化和反序列化在此过程中起关键作用。 Java提供了两种主要的序列化方式: 1. Object Serialize:Java内置的序列化机制,通过实现`...

    Intent传递对象之Serializable和Parcelable的区别

    Intent在不同的组件中传递对象数据的应用非常普遍,大家都知道在intent传递对象的方法有两种:1、...Serializable的作用是将数据对象存入字节流当中,在需要时重新生成对象,主要应用是利用外部存储设备保存对象状态,

    Android序列化之Parcelable和Serializable的使用详解

    Parcelable 和 Serializable 是两个序列化接口,它们的作用是让实现了其中一个接口的类的对象能够被序列化和反序列化。 * Serializable 是 Java 提供的序列化接口,它是一个空的接口,仅标识该类型可序列化的,具体...

    intent传递自定义对象

    - Java的Serializable接口及其作用。 - Android Intent的工作原理和用途。 - 如何在自定义类中实现Serializable接口。 - 在Intent中使用`putExtra()`和`getSerializableExtra()`方法传递和接收对象。 - Parcelable...

Global site tag (gtag.js) - Google Analytics