不是说特定或好处,是有作用的
比如你定义了一个Student类,里面定义了一个SerializableID=5,序列化后传给我,我将其存到数据库以后再使用
若干天后,系统升级,你在Student类加了一个字段String address,如果Student里没有定义SerializableID或者SerializableID不一样了,我存在数据库里的Student对象就反序列化不回来了
比如你定义了一个Student类,里面定义了一个SerializableID=5,序列化后传给我,我将其存到数据库以后再使用
若干天后,系统升级,你在Student类加了一个字段String address,如果Student里没有定义SerializableID或者SerializableID不一样了,我存在数据库里的Student对象就反序列化不回来了
如果定义了SerializableID,即使你在Student里加了一个属性,我存在数据库的对象少一个属性,但还是可以反序列化回来的,只是新加的那个属性值为null而已
记录序列化后的版本号。。仅此而已吧
对象序列化是为了反序列化用的
比如将一个对象写入到文件,或者作为流的形式传给第三方,那么这个类必须实现Serializable接口,并且定义一个私有的常量SerializableID,不然就不能从文件中读取对象了,接收方也没法还原这个对象
主要是让你这个对象有唯一的标识!就是说序列化和反序列话后要保持版本一致!