Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 1.7中序列化的HashMap可以在1.6中使用吗?_Java_Serialization_Deserialization_Serialversionuid - Fatal编程技术网

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