aho*_*der 34 java serialization static transient
我正在使用一些静态方法和字段进行保存状态序列化.我可以发誓虽然序列化和静态造成了混乱.我应该让所有静态瞬态?膨胀呼叫会恢复静态正常吗?
Rob*_*bin 61
statics是隐式的transient,所以你不需要声明它们.
序列化用于序列化实例,而不是类. static字段(方法无关紧要,因为它们是类定义的一部分,因此它们不是序列化的)将重新初始化为加载类时设置的任何值.
如果您有可变static字段,则对该值所做的更改将丢失.
小智 9
简短的规则如下:
1.static序列化时不保存变量。相反,在反序列化过程中,static变量是从类级别初始化开始的。
2.static和transient基于关键字的变量在序列化过程中都被忽略。
3. 类名 和serialVersionUID都被序列化为字节流,反序列化时serialVersionUID,从源读取的 与本地类相同static变量进行比较。这就是为什么serialVersionUID声明为static public final不需要创建其他对象来比较这些 versionUID(s)。
| 归档时间: |
|
| 查看次数: |
21986 次 |
| 最近记录: |