Java 1.7中序列化的HashMap可以在1.6中使用吗?
我认为这会抛出一个错误,说次要版本号;但事实并非如此。而且工作正常。有人能指出,为什么这样做Java 1.7中序列化的HashMap可以在1.6中使用吗?,java,serialization,deserialization,serialversionuid,Java,Serialization,Deserialization,Serialversionuid,我认为这会抛出一个错误,说次要版本号;但事实并非如此。而且工作正常。有人能指出,为什么这样做 我在运行Java1.7的应用程序中创建了一个hashMap,对其进行序列化,并使用JDK1.6将其发送到应用程序。接收器应用程序能够毫无错误地获取内容。这就是serialVersionUID属性发挥作用的地方 在Java版本6.0和7.0的HashMap类中,serialVersionUID如下所示: private static final long serialVersionUID = 362498
我在运行Java1.7的应用程序中创建了一个hashMap,对其进行序列化,并使用JDK1.6将其发送到应用程序。接收器应用程序能够毫无错误地获取内容。这就是
serialVersionUID
属性发挥作用的地方
在Java版本6.0和7.0的HashMap
类中,serialVersionUID
如下所示:
private static final long serialVersionUID = 362498820763181265L;
这意味着没有对类进行任何更改,这些更改将改变对象的序列化方式。因此,如果使用不同版本的Java对对象进行序列化/反序列化,则不会出现错误,因为这两个版本都能够正确地对对象进行序列化/反序列化
此外,即使是Java 8.0也有and(和偶数),这意味着您可以使用Java 1.4-5-6-7-8毫无问题地读/写HashMap
s