日期:2014-05-20  浏览次数:20792 次

序列化小问题
1 我在网上看了,说static变量不能序列化,但是我测试了一下,发现可以序列化,不知道是什么原因
2 看了一个兄弟的面试题,在网上没找到答案:java实现对象的序列化有哪两种方式?

------解决方案--------------------
注意您的结贴率。这样没人会回答您
------解决方案--------------------
static的变量是不可以被序列化的。
除非你自己写readObject、writeObject方法。
因为static变量是属于类的,
如果你这个类的一个对象被序列化了,保存了static变量的值为A。
可在因为这个类的另外一个对象变成了B,
那就没什么意义了。
如果是static final 应该也是可以的。

不知道你怎么测试的,static变量可以被序列化。

我知道除了实现serializable接口,还可以实现另外一个接口,
不过那个接口也是实现了serializable接口的。
我就不说了。
------解决方案--------------------
探讨
如果是static final 应该也是可以的。

------解决方案--------------------
呦~实现序列化通常用两个方法:一个是:实现Serializable接口,第二个就是实现Externalizable接口!
不过后者是前者的子接口!
------解决方案--------------------
这个值是属于类MyClass的。
之前你并没有把它序列化。
反序列化自然也得不到它的值。
之所以能输出,是因为它属于类,你加载了类MyClass,它就存在,且有值。