java9压缩字符串如何处理序列化?
我对java非常熟悉,但不知何故,序列化总是超出我的职责范围 引入了Java9,因此字符串中的字符总是被备份到java9压缩字符串如何处理序列化?,java,string,serialization,binary-serialization,Java,String,Serialization,Binary Serialization,我对java非常熟悉,但不知何故,序列化总是超出我的职责范围 引入了Java9,因此字符串中的字符总是被备份到字节[],而不是字符[]数组中。从内存的角度来看,这是非常好的,允许Latin1字符串占用(大约)x2更少的内存。然而,从序列化的角度来看,这对我来说有点不清楚。让我解释一下: 让我们有一个可序列化的类: public class Person implements Serializable { public String name; public String surn
字节[]
,而不是字符[]
数组中。从内存的角度来看,这是非常好的,允许Latin1字符串占用(大约)x2更少的内存。然而,从序列化的角度来看,这对我来说有点不清楚。让我解释一下:
让我们有一个可序列化的类:
public class Person implements Serializable
{
public String name;
public String surname;
public Person(String name, String surname)
{
this.name = name;
this.surname = surname;
}
}
现在,如果我们将创建的person序列化为二进制(我不会复制粘贴代码,但是,我们将使用二进制文件或字节数组)
现在,问题是:如果我们将有一个
新人(“John”,“Doe”)
和一个新人(“Jön”,“Döe”)
使用java9+进行序列化,那么它们在java的早期版本(比如java8)中是否会正确反序列化?如果可以,java如何处理?谢谢。内存中的字符串格式并不决定字符串的序列化形式。我不能肯定,但我的猜测是:是的,没问题。:-)根据的规范,字符串总是序列化为UTF-8。对于Java 9,此规范尚未更改