黑马程序员技术交流社区

标题: 对象序列化的问题 [打印本页]

作者: zhangx    时间: 2013-4-18 20:43
标题: 对象序列化的问题
本帖最后由 zhangx 于 2013-4-21 09:00 编辑

对象若要序列化必须实现Serializable接口,但是此接口没有定义任何的方法,就是说无论什么类都可以毫不改变的实现此接口,这样想序列化就序列化,不想的话也不影响类原本的内容,这样做岂不是更好吗?那为什么不让所有的类都实现Serializable接口?
作者: 黑马-张明    时间: 2013-4-18 21:07
本帖最后由 黑马-张明 于 2013-4-18 21:37 编辑

当你想把的内存中的对象保存到一个文件中或者数据库中时候;或者你想用套接字在网络上传送对象的时候;再或者你想通过RMI传输对象的时候;这些时候才需要用到序列化!
在没有序列化前,每个保存在堆(Heap)中的对象都有相应的状态(state),即实例变量(instance ariable)比如:
Foo myFoo = new Foo();
myFoo .setWidth(37);
myFoo.setHeight(70);
当通过下面的代码序列化之后,MyFoo对象中的width和Height实例变量的值(37,70)都被保存到foo.ser文件中,这样以后又可以把它 从文件中读出来,重新在堆中创建原来的对象。当然保存时候不仅仅是保存对象的实例变量的值,JVM还要保存一些小量信息,比如类的类型等以便恢复原来的对象。

作者: Miss小强    时间: 2013-4-18 22:01
我也有这个疑问,但是记得老黎说过:使用JPA,时如果要用复合主键,该类必须要实现序列号接口,具体的我也想等高手出现。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2