ObjectOutputStream序列化对象传输时,为了节省开销,会自动比较以前序列化过的对象,如果一致(指内存,不比较内容),则自动引用以前用过的对象,
这就造成了传输到对方的对象总是第一次序列化的对象,而且不论怎么查都查不出问题处在那里。。
就好像灵异事件。。。。
其实在ObjectOutputStream的方法中,有一个reset()方法就是为了避免这种情况出现的。如:
ObjectOutputStream output = new ObjectOutputStream(socket.getOutputStream());
output.reset();//每次序列化前都加一次.
output.writeObject(person);
浙公网安备 33010602011771号