Сериализация используется для сохранения в Java. Это может быть хорошо, чтобы сохранить несколько объектов, используя сериализацию. Но для большого количества объектов лучше использовать ORM, базу данных и т. Д. Кажется, что сериализация полезна только для небольших работ. Может быть, я ошибаюсь. Так скажите, пожалуйста, в чем преимущества сериализации по сравнению с несериализационными методами? Когда его следует использовать и когда его следует избегать?
Этот вопрос возник у меня после просмотра статьи DZone. Является ли сериализация объекта злом?
И вот строки, которые породили мой вопрос:
Если вы посмотрите на Java и его сессионные объекты, используется чистая сериализация объектов. Предполагая, что сеанс приложения является довольно коротким, то есть самое большее несколько часов, сериализация объектов проста, хорошо поддерживается и встроена в концепцию Java сеанса. Однако, когда постоянство данных длится более длительный период времени, возможно, дни или недели, и вам приходится беспокоиться о новых выпусках приложения, сериализация быстро становится злой. Любой хороший Java-разработчик знает, что если вы планируете сериализовать объект даже в сеансе, вам нужен реальный идентификатор сериализации (serialVersionUID), а не просто 1L, и вам необходимо реализовать интерфейс Serializable. Однако большинство разработчиков не знают настоящих правил, лежащих в основе процесса десериализации Java. Если ваш объект изменился, больше, чем просто добавление простых полей к объекту, Возможно, что Java не сможет правильно десериализовать объект, даже если идентификатор сериализации не изменился. Внезапно вы больше не можете получать свои данные, что по своей сути плохо.
Теперь разработчики, читающие это, могут сказать, что они никогда не будут писать код, который будет иметь эту проблему. Это может быть правдой, но как насчет библиотеки, которую вы используете, или какого-то другого разработчика, который больше не работает в вашей компании? Можете ли вы гарантировать, что эта проблема никогда не случится? Единственный способ гарантировать это - использовать другой метод сериализации.
1L
» неверна.