新手问:java中的Serializable接口到底是做什么用的?
2012-03-08 16:06
344 查看
序列化是把一个对象的状态写入一个字节流的过程,它执行RMI,RMI允许一台机器上的JAVA对象调用不同机器上的JAVA对象方法,对象可以作为参数提供给那个远程方法,发送机序列化该对象并传送它,接收机执行反序列化。
序列化和反序列化的关系图表可形成包含循环引用的顺序图表。这是整个序列化的总体思想。
而Serializable接口属于支持序列化的一个接口,只有一个实现它的对象可以被序列化工具存储和回复,Serializable接口没有定义任何成员,只用来表示一个累可以被序列化,若该类可以序列化,那么它的所有子类都可以。
下面是关于序列化的一个实例:
程序名称:SerializationDemo.java
程序主题:实现对象的序列化和反序列化
程序说明:该程序由实例化一个MyClass类的对象开始,该对象有三个实例变量,类型分别为String、int、double,是希望存储和恢复的信息。
程序运行结果:object1和object2的实例变量是一样的,输出如下:
object1:s=Hello;i=-7;d=2.7E10
object2:s=Hello;i=-7;d=2.7E10
序列化和反序列化的关系图表可形成包含循环引用的顺序图表。这是整个序列化的总体思想。
而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进阶(二)当我们说线程安全时,到底在说什么
- java枚举到底是什么鬼?
- java中 static变量和方法到底是存在内存什么区域呢?
- spring到底是什么!新手必看
- 五分钟让你看明白到底什么是Activity --java
- Java中字符流和字节流到底有什么区别!!!
- Java EE5到底有什么系列 – Java Persistence API 1.0( EJB3 Entity Bean)
- 到底掌握JAVA什么
- 成为一名Java高级架构师到底需要学习什么?
- 在JAVA中线程到底起到什么作用!
- java中抽象类和抽象方法到底什么关系?请举例说明!
- 有没什么好的方法让新手学习java web开发?
- 值传递和引用传递,java到底按什么传递的
- java的clone到底说了点什么事情
- JAVA到底能做什么?为何实际用到的技术却很少?
- Java中字符流和字节流到底有什么区别!!!
- java 的接口到底起什么作用