【问题标题】:how to send my java class object in internet如何在互联网上发送我的 java 类对象
【发布时间】:2012-06-22 06:58:49
【问题描述】:

我有一个简单的 java 类对象。我可以通过网络将字节码发送给我的任何朋友。那么发送一个对象而不序列化它有什么问题呢?为什么需要序列化来发送对象。不能直接发吗?

【问题讨论】:

  • 是的。您可以通过电子邮件发送。
  • 如果你的朋友是JVM进程那么你必须序列化。否则通过电子邮件发送 .java 文件。
  • 你要发送类还是对象?
  • 他想发送字节码,想知道他为什么要序列化一个对象..

标签: java serialization


【解决方案1】:

您的对象可以包含不可序列化的对象,例如 InputStreams 或 DatabaseConnections。如果您的对象(或其前身)实现了 Serializable 接口,那么您的代码在序列化真正可能之前不会编译。

【讨论】:

    【解决方案2】:

    嗯,字节码代表 JVM 可读格式,而您的序列化对象包含对象的行为和状态(实例变量)。它们是完全不同的东西。

    为什么要在网络上发送序列化对象的原因。

    1. 您的对象的状态不断变化,因此您可以随时捕获其状态并在网络上存储/发送。

    2. 您可能希望将对象的状态不存储在您的机器中,而是存储在其他人的机器中。

    【讨论】:

      【解决方案3】:

      通过序列化,您可以将对象转换为包含类定义和对象道具的字节流。另一方面,序列化它有什么问题?这就是这样做的方法。

      【讨论】:

      • 如果他试图将它发送到另一个工作的java系统,则需要序列化。如果他想把它发送给他的任何朋友,电子邮件是很好的。
      • 通过电子邮件发送对象?你能解释一下,怎么可能?朋友应该用它做什么?打印出来挂在墙上?系统需要对象。
      • 没错。这就是问题:-)
      • 如果我有一个 A 类并且在这个类中我有另一个 B 类的对象。如果我发送 A 类的字节码,那么我正在传输 B 类的对象 - @iozee
      • @Alexander 感谢您提供有关您房子的信息。如果您想具有建设性 - 请您直接与 manasi 合作以明确他的问题吗?
      【解决方案4】:

      序列化是通过客户端服务器通信来管理对象的状态。如果您不进行可序列化,则它不会管理对象的状态。如果您尝试将一个对象从服务器传递到客户端而不进行序列化,它将提供 u 空对象值。因此表明您希望在客户端接收的对象与您发送的对象不同。只需通过序列化,它就不会每次都创建新对象。所以它必须是必需的。

      【讨论】:

        【解决方案5】:

        Object's 状态谎言在 JVM 里面。任何其他 JVM 如何知道您的对象在您的 JVM 中的状态,您可以通过 E-Mail ftp 或任何其他文件传输介质将您的对象的蓝图(类)传输给您的朋友,但是如果您必须在JVM 之间传输object,那么您需要保持对象的状态,因此您需要序列化。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-04-12
          • 2018-02-28
          • 1970-01-01
          相关资源
          最近更新 更多