Serialization 序列化的需要

Serialization 序列化的需要,serialization,Serialization,我是序列化概念的新手,请帮助理解这个概念。 序列化到底意味着什么?我已经读过定义,但无法理解细节 基本类型int、string是如何序列化的 如果我们在代码中不使用序列化,数据将如何传输 从前端Java/C代码访问数据库时是否涉及任何隐式序列化过程?从数据库插入/删除的示例。序列化只需获取一个对象并将其转换为更简单的内容。假设在C中有一个对象,如下所示: class Employee { public int age; public string fullname; } pub

我是序列化概念的新手,请帮助理解这个概念。 序列化到底意味着什么?我已经读过定义,但无法理解细节

基本类型int、string是如何序列化的

如果我们在代码中不使用序列化,数据将如何传输


从前端Java/C代码访问数据库时是否涉及任何隐式序列化过程?从数据库插入/删除的示例。

序列化只需获取一个对象并将其转换为更简单的内容。假设在C中有一个对象,如下所示:

class Employee
{
    public int age;
    public string fullname;
}

public static void Main()
{
    var john = new Employee();
    john.age = 21;
    john.fullname = "John Smith";

    var matt = new Employee();
    matt.age = 44;
    matt.fullname = "Matt Rogers";
    ...       
这是C友好的。但是,如果您希望以CSV格式将该信息保存在文本文件中,您将得到如下结果:

age,fullname
21,John Smith
44,Matt Rogers
编写CSV时,基本上是将信息序列化为不同的格式—在本例中是CSV文件。您可以将对象序列化为XML、JSON、数据库表、内存或其他内容。这是一个例子

如果不序列化,将传递混淆。也许在传输之前会隐式调用对象的ToString,无论传输什么结果。因此,将数据转换为对接收器友好的内容是至关重要的

总是有一些序列化发生。例如,当执行填充数据表的查询时,会发生序列化。

概念:

序列化是将对象转换为一系列字节的过程。 通常,我们在应用程序中使用的对象是复杂的,所有这些对象都可以很容易地以字节序列的形式表示,这些字节可以存储在文件/数据库中或通过网络传输

只需使类实现可序列化接口,就可以使类可序列化

要成功序列化类,必须满足两个条件: 该类必须实现java.io.Serializable接口。 类中的所有字段都必须是可序列化的。如果字段不可序列化,则必须将其标记为瞬态

当程序完成序列化后,如果它存储在扩展名为.ser的文件中,则可以使用它进行反序列化。 序列化为序列化对象提供SerialVersionId,该对象必须与反序列化匹配