Java 静态序列化规则?
2022-09-01 01:22:30
我正在使用一些静态方法和字段进行保存状态序列化。我本可以发誓,尽管序列化和静态造成了混乱。我应该让所有静态的瞬态吗?充气调用会恢复正常状态吗?
我正在使用一些静态方法和字段进行保存状态序列化。我本可以发誓,尽管序列化和静态造成了混乱。我应该让所有静态的瞬态吗?充气调用会恢复正常状态吗?
static
s 是隐式的,所以你不需要这样声明它们。transient
序列化用于序列化实例,而不是类。 字段(方法无关紧要,因为它们是类定义的一部分,因此不会序列化)将被重新初始化为在加载类时设置的任何值。static
如果您有可变字段,则对该值所做的更改将丢失。static
简短规则可以如下所示:
1. 在序列化过程中不保存变量。相反,在反序列化过程中,变量是从类级初始化启动的。static
static
2. 和基于关键字的变量在序列化过程中都会被忽略。static
transient
3. 类名和序列化为字节流,反序列化时,从源读取,与局部类同一变量进行比较。这就是为什么声明为不需要创建进一步的对象来比较这些版本UID的原因。serialVersionUID
serialVersionUID
static
serialVersionUID
static public final