黑马程序员技术交流社区
标题:
java中定义的类有的要实现Serializable接口,不知道实现它有什么作用???
[打印本页]
作者:
蒋朝权
时间:
2011-9-26 15:43
标题:
java中定义的类有的要实现Serializable接口,不知道实现它有什么作用???
public class User implements Serializable {
private static final long serialVersionUID = -236575787897890L;
.........................
}
作者:
匿名
时间:
2011-9-26 15:50
将对象的序列化,Serializable英文名不就是序列化的意思么(^_~)程序在运行时产生的对象在程序结束后会消失,如果想把某些对象保存下来,在程序再次运行时读取这些对象就要将其Serializable了。
作者:
匿名
时间:
2011-9-26 15:55
Serializable 这个接口是特殊的接口,没有任何需要继承的方法,被称为标志接口,也就是说,只是一个标志而已,如果你要序列化这个类的一个对象,就必须要实现这个接口,这样就能够序列化这个对象了,如果你没有自定义serialVersionUID ,那么只要你的class文件一修改,这个值就会变,这样的话,你序列化后的对象文件就不能用了,所以,自己定义完后就不会发生这种情况。
作者:
匿名
时间:
2011-9-26 16:07
对 Serializable 只是一个标志而已,这个借口没有需要继承的方法!!可是同学告诉我他们培训的一般要用,要不偶尔会出错,反正我没遇见过。
作者:
匿名
时间:
2011-9-26 16:15
当使用IO流ObjectOutputStream和ObjectInputStream传对象时,此时的对象应实现Serializable接口
作者:
匿名
时间:
2011-9-26 18:09
serialVersionUID 用来表明类的不同版本间的兼容性。如果你修改了此类, 要修改此值。否则以前用老版本的类序列化的类恢复时会出错。为了在反序列化时,确保类版本的兼容性,最好在每个要序列化的类中加入private static final long serialVersionUID这个属性,具体数值自己定义
作者:
徐西宏
时间:
2011-9-28 12:29
这里只是一个接口而已,就把它当做一个标识吧,实现了这个接口的就对这个对象进行序列化。
序列化一般是在进行网络传输时会被用到,一个类先序列化成一定格式,再传到远端的服务器或客户端,远端收到了然后又反序列化还原成类,你不用管是怎么序列化的,但是不实现这个接口的话这个类就会传不了
[
本帖最后由 徐西宏 于 2011-09-28 12:34 编辑
]
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2