2017-02-06 27 views
-3

我想明白了,当你标记一个类为Serializable一个类实例化(在我的情况记录器)的静态不会对其进行序列化为什么我们序列化java类并声明一个变量static不会序列化它呢?

+0

不知道你在问什么。如果你想确保一个字段没有被序列化,使用* transient *关键字。 – GhostCat

+3

如果你连载一个类的实例,静态字段不会因为它不是实例的一部分被序列化。那是你在说什么? – khelwood

+0

'static'字段不是实例的一部分。 –

回答

0

,您所请求的Java运行时序列化对象例如你的班级。这有助于将对象中的数据转换为可持久的格式以存储或通过strean发送。

在另一方面,static成员不属于任何阶级和下降序列化的范围之外。所以,这标志着你的Serializable类不会影响您的任何类的static成员。

当你反序列化一个对象,它的所有类的static成员已经在其他JVM加载类时初始化。所以发送静态字段数据作为序列化对象的一部分是没有意义的。

详情请参阅this article

希望这会有所帮助!

相关问题