Серіалізація в Java — це концепція представлення стану об’єкта у вигляді потоку байтів. Потік байтів містить всю інформацію про об'єкт. Зазвичай використовується в Hibernate, JMS, JPA та EJB, серіалізація в Java допомагає транспортувати код з однієї JVM в іншу, а потім десеріалізувати його там.
Реалізація інтерфейсу Serializable коли ви хочете мати можливість перетворити екземпляр класу в ряд байтів або коли ви думаєте, що об’єкт Serializable може посилатися на екземпляр вашого класу. Серіалізовані класи корисні, коли ви хочете зберегти їх екземпляри або надіслати їх по дроту.
Якщо наш клас не реалізує інтерфейс Serializable, або якщо він має посилання на клас, який не є Serializable, тоді JVM викине NotSerializableException . Усі тимчасові та статичні поля не серіалізуються.
На практиці; однак більшість людей роблять свої POJO серіалізованими з таких причин: Це дозволяє передавати об’єкт до EJB. Це дозволяє зберігати об’єкт у сеансі сервлету. Це може знадобитися для деяких реалізацій кластеризації та/або кешування.
Постійність: серіалізація дозволяє легко зберігати об’єкти у файлі або базі даних і отримувати їх пізніше, що дозволяє легко реалізувати постійне зберігання в програмах. Це дозволяє додатку зберігати об’єкт для довгострокових цілей, наприклад, корпоративних програм і систем, що інтенсивно обробляють дані.