Используете ли вы класс ObjectOutputStream для сериализации вашего объекта беседы?Если это так, он будет кэшировать классы, которые вы уже записали в поток, так что даже когда вы изменяете значения на стороне клиента, каждый раз, когда вы пишете этот объект, он будет отправлять указатель на этот объект, что экономит много времении пропускная способность.К сожалению, это не всегда ваша цель, поэтому у вас есть два варианта:
- Сбросить поток.Из JavaDoc:
Сброс будет игнорировать состояние любых объектов, уже записанных в поток.Состояние сбрасывается, чтобы быть таким же, как новый ObjectOutputStream.Текущая точка в потоке помечена как сброшенная, поэтому соответствующий ObjectInputStream будет сброшен в той же точке.Объекты, ранее записанные в поток, не будут считаться уже находящимися в потоке.Они будут снова записаны в поток.
Вы можете прочитать отличную статью об этом здесь .
- Создайте новые экземпляры вашего объекта беседы, как вы предлагали.
Лично я считаю более чистым создавать новые объекты, а не сбрасывать поток до (или после) каждой записи, однако, если вы находитесь в ситуации, когда распределение вашего объекта довольно велико ивы изменяете только пару полей между сетевыми записями, может быть лучше сбросить поток.
Однако этот вид оптимизации лучше всего отложить на более поздний срок в вашем проекте, когда вы можете сделать какую-то реальнуюпрофилирование, чтобы увидеть, что работает лучше для вас.Я советую выбрать тот, который вам удобнее, и двигаться вперед, пока не наступит момент, когда оптимизация имеет значение.Всегда помните, преждевременная оптимизация - проклятие хорошего программирования!:)