黑马程序员技术交流社区
标题:
Serializable接口
[打印本页]
作者:
郑昌奋
时间:
2013-3-22 21:57
标题:
Serializable接口
本帖最后由 郑昌奋 于 2013-3-23 10:26 编辑
Serializable接口
实现这个借口有什么好处的?
作者:
彭颖
时间:
2013-3-22 22:30
这个是为了对象可序列化,一个类只有实现了Serializable接口,它的对象才是可序列化的。
为什么要序列化,简单的说就是为了方便存储数据。
具体一点就是
1、当你想把的内存中的对象写入到硬盘的时候;
2、当你想用套接字在网络上传送对象的时候;
3、当你想通过RMI传输对象的时候;
作者:
MyNameIs520
时间:
2013-3-22 22:52
本帖最后由 吴上波 于 2013-3-22 22:53 编辑
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();
作者:
郑昌奋
时间:
2013-3-23 10:26
吴上波 发表于 2013-3-22 22:52
1、序列化: 简单说就是为了保存在内存中的各种对象的状态 ,并且可以把保存的对象状态再读出来
虽然你 ...
明白了。谢谢你
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2