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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhangx 中级黑马   /  2013-4-18 20:43  /  1249 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zhangx 于 2013-4-21 09:00 编辑

对象若要序列化必须实现Serializable接口,但是此接口没有定义任何的方法,就是说无论什么类都可以毫不改变的实现此接口,这样想序列化就序列化,不想的话也不影响类原本的内容,这样做岂不是更好吗?那为什么不让所有的类都实现Serializable接口?

评分

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

查看全部评分

2 个回复

倒序浏览
本帖最后由 黑马-张明 于 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还要保存一些小量信息,比如类的类型等以便恢复原来的对象。

评分

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

查看全部评分

回复 使用道具 举报
我也有这个疑问,但是记得老黎说过:使用JPA,时如果要用复合主键,该类必须要实现序列号接口,具体的我也想等高手出现。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马