我有一个简单的java类对象。我可以通过网络将字节码发送给我的任何朋友。那么通过发送一个没有序列化的对象会出现什么问题呢?为什么要发送对象需要序列化。我们不能直接发送吗?
答案 0 :(得分:0)
通过序列化,您可以将对象转换为包含类定义和对象道具的字节流。另一方面,串行化的问题是什么?这只是做到这一点的方式。
答案 1 :(得分:0)
您的对象可以包含不可序列化的对象,如InputStreams或DatabaseConnections。如果您的对象(或其前身)实现了Serializable接口,那么您的代码将无法编译,直到可以实现序列化。
答案 2 :(得分:0)
当序列化对象包含对象的行为和状态(实例变量)时,字节代码表示JVM可读格式。他们是完全不同的东西。
您希望在网络上发送序列化对象的原因。
您的对象状态不断变化,因此在任何时候您都希望捕获其状态并在网络上存储/发送。
您可能希望将对象的状态存储在您的计算机中,而不是存储在其他人的状态中。
答案 3 :(得分:0)
序列化是通过客户端服务器通信来管理对象的状态。如果您没有生成Serializable,那么它将无法管理对象的状态。如果您尝试将一个对象从服务器传递到客户端而不进行序列化,则它将提供u null对象值。所以它表示你希望在客户端接收的对象与你发送的不同。只是通过序列化,它不是每次都创建新对象。所以它必须要求。
答案 4 :(得分:0)
Object's
状态谎言在JVM
内。其他任何JVM
如何了解您JVM
内对象的状态,您可以通过E-Mail
{{1}将对象的蓝图(类)转移给您的朋友或者任何其他文件传输介质,但是如果你必须在ftp
之间传输object
,那么你需要保持对象的状态,因此你需要序列化。