我刚刚在Java中发现你可以声明一个字段'静态瞬态' - 编译器不会抱怨.这似乎没有任何用处,因为静态字段没有被序列化,我们都知道.
但我想知道,实际上是否存在"静态瞬态"字段有用的情况?
我偶然发现了java序列化.我在许多文档和书中都读到静态和瞬态变量无法用Java序列化.我们声明serialVersionUid如下.
private static final long serialVersionUID = 1L;
Run Code Online (Sandbox Code Playgroud)
如果静态变量未被序列化,那么在反序列化过程中我们经常会遇到异常.
java.io.InvalidClassException
Run Code Online (Sandbox Code Playgroud)
其中提取了反序列化对象的serialVersionUID,并与加载的类的serialVersionUID进行比较.
据我所知,我认为如果静态变量无法序列化.这个例外毫无意义.我可能错了,因为我还在学习.
是否存在"java中的静态和瞬态变量无法序列化"的神话.请纠正我,我对这个概念一团糟.