首页 > 编程知识 正文

平板电脑serial是什么,compare to java

时间:2023-05-06 12:05:44 阅读:39272 作者:1012

使用可序列化接口

实施序列化接口的目的是为系统分布和异构环境中的部署提供前提条件,以实现网络传输和本地存储等类的可持续性。 如果未序列化,则在当前众所周知的远程调用中不存在对象数据库

serialVersionUID适用于java序列化机制。 简而言之,JAVA序列化机制匹配通过确定类的serialVersionUID验证的版本。 取消序列化时,JVM会将传入的字节流中的serialVersionUID与本地相应实体类的serialVersionUID进行比较。 如果相同的说明一致,则可以进行反序列化。 否则,将出现反序列化版本一致的异常,即InvalidCastException。

具体的序列化过程在序列化操作期间将系统当前类的serialVersionUID写入序列化文件,并在取消序列化时自动检测文件中的serialVersionUID,以便与当前类的serialVersionUID 如果序列化文件的版本始终显示与当前类的版本相同,则可以相反地成功进行序列化。 否则就会失败。

默认情况下,serialVersionUID有1l生成两个显示的方式,例如privatestaticfinallongserialversionuid=1l。 生成的非常复杂的64位散列字段,由包名称、类名、继承关系、非专用方法和属性、参数、返回值等多个因子计算而成。 基本上计算出的这个值是唯一的。 例如privatestaticfinallongserialversionuid=xxxxl; 注:通过查看serialVersionUID声明,可以避免对象不匹配

定义java.io.Serializable界面中未显示的serialVersionUID变量时,JAVA序列化机制会根据Class自动生成serialVersionUID进行序列化版本比较在这种情况下,如果Class文件(类名、大气鸵鸟等)没有变更

如果不希望编译强制拆分软件版本,即实现序列化接口的实体与早期版本兼容,则必须定义显示的serialVersionUID、类型为long的变量。 不更改此变量值的序列化实体可以相互序列化和反序列化。

不显式定义此属性值的另一个缺点是不利于在不同JVM之间移植程序。 由于编译器实现此属性值的计算方法可能不同,类未更改,但由于JVM不同,类版本不兼容,无法正确反序列化

Java序列化机制Java序列化机制通过在运行时确定类的serialVersionUID来验证版本的一致性。 执行反序列化时,JVM可以将传入的字节流中的serialVersionUID与本地对应实体(类)的serialVersionUID进行比较,并认为它们一致,然后执行反序列化。 否则,会出现序列化版本不匹配的异常。 (InvalidCastException )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。