我注意到许多库类“ ArrayList”,“ String”,甚至例外情况都具有serialVersionUID。他们为什么这样做。这样做的实际用途是什么。仅供参考,我熟悉序列化的概念。请指出它的实际用途。
供您参考,找到ClassCastException的serialversionUid
public class ClassCastException extends RuntimeException {
private static final long serialVersionUID = -9223365651070458532L;
这些对象的状态将持续到哪里?这些对象的状态将在哪里检索?
我目前在一个项目中工作,我们正在制作REST控制器,其输入和输出参数将为JSON。我们正在为i / p和o / p参数创建简单的POJO,我见过有人使这些POJO可序列化。这样做吗?
但是我还没有看到
**out.readObject**
或out.writeobject用于写入和读取对象的状态.POJO的状态是否会持久化只是使其可序列化?如果是,它将存储在哪里? 最佳答案
如果需要全文,请阅读规范:Java Object Serialization Specification。
[...]许多库类“ ArrayList”,“ String”,甚至例外都具有serialVersionUID。他们为什么这样做。
为了支持在读取使用该类的较早版本编写的对象时的向后兼容性。请参见Stream Unique Identifiers。
这些对象的状态将持续到哪里?
无论您决定在哪里。请参见Writing to an Object Stream。
这些对象的状态将在哪里检索?
无论放在哪里。请参见Reading from an Object Stream。
[...]输入和输出参数将为JSON。 [...]我看到人们使这些POJO可序列化。这样做有什么意义?
没有。 JSON未使用Java序列化。 Java序列化创建二进制流。 JSON创建文本。
POJO的状态是否会一直保持可序列化状态才能保持下去?如果是,它将存储在哪里?
不,请参见上面。