| * | Сериализация класса: преобразование объекта в байты и байты обратно в объект (десериализация).
class NamCls implements Serializable
{
int NumVar;
String NamVar;
}
| => Object-Serialization - это процесс преобразования состояния объекта в пару байтов.
- | -> Реализуйте, когда вы хотите, чтобы объект существовал вне времени жизни JVM.
- | -> Сериализованный объект может храниться в базе данных.
- | -> Сериализуемые объекты не могут быть прочитаны и поняты людьми, поэтому мы можем добиться безопасности.
| => Объектная десериализация - это процесс получения состояния объекта и сохранения его в объекте (java.lang.Object).
- | -> Перед сохранением своего состояния он проверяет, совпадают ли входной файл / сеть формы serialVersionUID с файлом serialVersionUID .class.
Если не выбрасывать java.io.InvalidClassException.
| => Объект Java сериализуем только в том случае, если его класс или какой-либо из его суперклассов
- реализует либо интерфейс java.io.Serializable, либо
- его подинтерфейс, java.io.Externalizable.
| => Статические поля в классе не могут быть сериализованы.
class NamCls implements Serializable
{
int NumVar;
static String NamVar = "I won't be serializable";;
}
| => Если вы не хотите сериализовать переменную класса, используйте ключевое слово transient
class NamCls implements Serializable
{
int NumVar;
transient String NamVar;
}
| => Если класс реализует сериализуемый, то все его подклассы также будут сериализуемыми.
| => Если у класса есть ссылка на другой класс, все ссылки должны быть сериализуемыми, иначе процесс сериализации не будет выполнен. В этом случае
NotSerializableException генерируется во время выполнения.