`
tomotoboy
  • 浏览: 162390 次
  • 性别: 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接口实现详解

    主要介绍了Java对象Serializable接口实现详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

    主要为大家详细介绍了java中Serializable接口的作用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    Java 对象序列化详解以及实例实现和源码下载

    Java中的序列化机制有两种实现方式: 一种是实现Serializable接口 另一种是实现Externalizable接口 区别: 实现Serializable接口 1 系统自动储存必要的信息 2 Java内建支持,易于实现,只需实现该接口即可,无须任何...

    深入探索Java对象的序列化

    要序列化的对象应该实现Serializable接口。 Serializable接口是一个标识接口,没有抽象方法。 Serializable有一个子接口Externalizable,实现Externalizable接口的类可以自行控制对象序列化荷反序列化过程。 ...

    【java系列文章】java 基础知识

    2.Java为什么不直接实现lterator接口,而是实现lterable? 3.简述什么是值传递和引用传递? 4.概括的解释下Java线程的几种...1.为什么集合类没有实现Cloneable和Serializable接口? 2.Java中的HashMap的工作原理是什么?

    解析Android中的Serializable序列化

    1、为何要序列化? — 把内存中的java对象能够在磁盘上持久保存 — 通过网络传输对象 ...在java里只需让目标类实现Serializable接口,无须实现任何方法。Serializable接口是一种标记接口,用来标明

    Java_serialization_doc.rar_Serializable _doc_序列化

    Java中对象的序列化(serialization)允许把采用Serializable接口的任何对象转换成字节流序列;同时它也允许把字节流序列转换回对象本身。其机制不依赖于操作系统,也就是说,你可以通过网络传递该对象,并在网络...

    Android面试专题(七):Serializable 和 Parcelable 的区别

    面试官:“说一下Serializable接口和Parcelable接口的区别吧。” 我们可以从以下两方面来说一说~ 首先我们先给两者来个简单的介绍: 1.定义 Serializable(Java自带): Serializable是序列化的意思,表示将一个对象...

    Java集合面试题.docx

    为何 Collection 不从 Cloneable 和 Serializable 接口继承? 5. 为何 Map 接口不继承 Collection 接口? 6. Iterator 是什么? 7. Enumeration 和 Iterator 接口的区别? 8. 为何没有像 Iterator.add()这样的...

    什么是Java的序列化和反序列化?如何实现对象的序列化和反序列化?(java面试题附答案).txt

    通过实现 Serializable 接口,Java对象可以被序列化和反序列化。序列化可以将对象转换为字节流,以便于存储或传输。反序列化则可以将字节流重新转换为原始对象。需要注意的是,序列化和反序列化的类必须具有相同的 ...

    Java高级程序设计实战教程第五章-Java序列化机制.pptx

    5.3.1 任务一 使用serializable序列化实体对象 实现Serializable接口非常简单,只要让Jjava实现Serializable接口即可,无需实现任何方法。 一个类一旦实现了Serializable接口,那么该类的对象就是可序列化的。实现...

    Hibernate注解映射联合主键

    第一、将联合主键的字段单独放在一个类中,该类需要实现java.io.Serializable接口并重写equals和hascode,再将该类注解为@Embeddable,最后在主类中(该类不包含联合主键类中的字段)保存该联合主键类的一个引用,并...

    java面试题进阶版附答案.docx

    六、序列化和反序列化:解释了Java中序列化和反序列化的概念,以及通过实现Serializable接口进行对象的序列化和反序列化的过程。 七、内部类和匿名类:介绍了Java中的内部类和匿名类的概念,包括不同类型的内部类...

    java中的IO操作总结(四)

    //一个类要想实现序列化则必须实现Serializable接口 class Person implements Serializable { private String name; private int age; public Person(String name, int age) { this.name = name; this.age = ...

    非常值得下载的java笔试大汇总

    但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...

    Java中的序列化与反序列化.pdf

    Serializable接口和Externalizable接口实现序列化和反序列化

    JAVA基础,常见java基础问题.rar

    2.接口和抽象类有什么区别 接口不能有方法实现,也就是说接口的方法都是抽象方法,但抽象类可以有方法实现。...序列化的实现一般是通过实现Serializable接口,并且会有一个serialVersionUID,这个ID叫做序列化ID

    java 面试题 总结

    但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...

    JAVA面试题最全集

    9.Java中访问数据库的步骤,Statement和PreparedStatement之间的区别。 10.找出下列代码可能存在的错误,并说明原因: 二、JSP&Servlet技术 1.描述JSP和Servlet的区别、共同点、各自应用的范围 2.在Web开发中...

Global site tag (gtag.js) - Google Analytics