【问题标题】:Why do most of the classes of Java frameworks extend serializable interface?为什么Java框架的大部分类都扩展了可序列化接口?
【发布时间】:2017-03-18 09:31:41
【问题描述】:

序列化是我们将对象转换为字节码以通过网络发送的技术。现在,很多 Java 框架类(Spring、hibernate(SessionFactory) 等)都扩展了可序列化接口?为什么呢?

为什么在网上搜索我发现了这段文字“序列化的类可以支持一致的版本控制并且足够灵活,可以让您的应用程序对象架构逐渐演变”。

这是上面问题的正确答案吗?如果是,请解释一下,如果不是,那么类扩展可串行接口的实际原因是什么

【问题讨论】:

  • 可能是因为迟早要序列化:????
  • ????他们实现 Serializable 的原因是它们可以被序列化。类实例被序列化以保存到磁盘、通过网络发送等。

标签: java serialization frameworks


【解决方案1】:

我认为您可以将此视为一种预防措施:让您的类从一开始就可序列化不会花费太多。

但是添加稍后到您的代码中可能会变得更加昂贵。

除此之外:使您的类可序列化实际上迫使您在创建类时思考/考虑这些“方面”。因此,它可以帮助提高您的设计质量 - 因为您不会忘记这一方面。

【讨论】:

    【解决方案2】:

    一个可能的原因是,如果需要,Web 容器可能会将会话数据存储在磁盘上(例如,高服务器负载和会话在一段时间内处于非活动状态)。为此,存储在会话中的所有数据(传递性,即会话数据直接或间接引用的所有实例)都必须是可序列化的。

    除了您在会话中存储的任何数据之外,许多框架还在会话中存储一些数据(会话范围的 bean,作为与 Spring 相关的示例)。

    【讨论】:

      猜你喜欢
      • 2011-04-20
      • 1970-01-01
      • 2012-11-06
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-07
      • 2015-12-21
      相关资源
      最近更新 更多