A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 张海洋 中级黑马   /  2013-3-22 23:36  /  1691 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

什么是java序列化,如何实现java序列化?

2 个回复

倒序浏览
序列化:将对象转化成流的过程称为序列化
反序列化:将流转化成对象的过程称之为反序列化
回复 使用道具 举报


1、序列化: 简单说就是为了保存在内存中的各种对象的状态 ,并且可以把保存的对象状态再读出来
     虽然你可以用你自己的各种各样的方法来保存对象状态,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化

2、序列化使用的场景:
    A.当你想把的内存中的对象状态保存到文件中或数据库中时;
    B.当你想用套接字在网络上传送对象的时候;
    C.当你想通过RMI传输对象的时候;

序列化对象如下:  
Student zhangsan = new Student();
zhangsan.setAge(18);
zhangsan.setSex(male);
zhangsan.setHeight(178);

实例化过程代码:
FileOutputStream fos= new FileOutputStream("student.ser");
ObjectOutputStream oos = new ObjectOutputStream(fos);
os.writeObject(student);

       当通过上面的代码序列化之后,Studeng对象zhangsan的实例变量值(18,male,178)都被保存到student.ser文件中,这样以后又可以把它从文件中读出来,重新在堆中创建原来的对象。当然保存时候不仅仅是保存对象的实例变量的值,JVM还要保存一些小量信息,比如类的类型等以便恢复原来的对 象。

3、实现序列化保存到文件的一般步骤
     //1.创建个Fileoutputsteam         
    FileOutputStream fos  new FileOutputStream("student.ser");   

     //2.创建个objiectoutputstream      
     ObjectOutputStream oos    new ObjectOutputStream(fos );  

     //3.写入特定类的对象, 用方法writeobjiect()
     os.writeObject(Object1);
     os.writeObject(Object2);
     os.writeObject(Object3);

     //4.关闭流
     os.close();

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马