最赞回答 / 青春因你而精彩
例如输入一个int类型的数据,这种类型的数据占据了4个字节(00000000 0000000 00000000 00000000)(从左向右:高—>地)存储格式 而write中()方法一次性的只能写进去8位,即一个字节(00000000),故此从高位至地位一次写入,写四次。 不太懂你到底想要知道什么?按自己理解的说的,不足勿怪。
2016-05-19
最赞回答 / Jarly杰
在序列化过程中,如果被序列化的类中定义了writeObject 和 readObject 方法,虚拟机会试图调用对象类里的 writeObject 和 readObject 方法,进行用户自定义的序列化和反序列化。如果没有这样的方法,则默认调用是 ObjectOutputStream 的 defaultWriteObject 方法以及 ObjectInputStream 的 defaultReadObject 方法。用户自定义的 writeObject 和 readObject 方法可以允许用户控制序列化...
2016-05-19
最新回答 / hzhu
序列化主要是为了方便将对象保存到文件或进行网络传输,所以对文件大小和效率有较高的要求。默认序列化会把对象的所有字段都予以保存,自己序列化就可以去掉一些冗余的不需要保存或传输的部分,能够提高效率
2016-05-07
最新回答 / qq_飞鸟_3
文件的存取你可能都清楚吧。都是字符,字符之间没有逻辑联系。而对象就不一样了,对象里面有结构关系,例如成员变量,成员方法,内部类。这时候按照文件那种方式存取,就没法保留结构关系了。存取,传输都需要这样。
2016-04-22
最新回答 / 你是我世界的光
因为之前你的类是没有被编译过的(即没有生成.class文件)。当实现java.io.Serializable接口的实体(类)没有显式地定义一个名为serialVersionUID,类型为long的变量时,Java序列化机制会根据编译的class(它通过类名,方法名等诸多因素经过计算而得,理论上是一一映射的关系,也就是唯一的)自动生成一个serialVersionUID作序列化版本比较用,这种情况下,当你运行一次之后,class文件已经产生了,如果class文件(类名,方法明等)没有发生变化(增加空...
2016-04-19