gpt4 book ai didi

Java:什么可以序列化,什么不能序列化?

转载 作者:IT老高 更新时间:2023-10-28 20:33:34 28 4
gpt4 key购买 nike

如果 Serializable界面只是一个Marker-Interface用于在 java 中传递某种关于类的元数据 - 我有点困惑:

看了java的序列化算法的流程(元数据自下而上,然后实际实例数据自上而下),实在搞不懂有哪些数据不能通过那个处理算法。

简而言之:

  1. 哪些数据可能导致NotSerializableException
  2. 我怎么知道我不应该为我的类(class)添加 implements Serializable 子句?

最佳答案

首先,如果您不打算序列化您的类的实例,则甚至不需要考虑序列化它。只实现你需要的,不要为了它而试图让你的类可序列化。

如果您的对象具有对任何不可序列化对象的引用(传递或直接),并且此引用未使用 transient 关键字标记,则您的对象将不可序列化。

一般来说,序列化在以后或其他地方反序列化时无法重用的对象是没有意义的。这可能是因为对象的状态仅在此时此地有意义(例如,如果它引用了正在运行的线程),或者因为它使用了一些资源,如套接字、数据库连接或类似的东西。很多对象不代表数据,也不应该是可序列化的。

关于Java:什么可以序列化,什么不能序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16851070/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com