需要序列化

时间:2015-09-13 03:20:23

标签: serialization

我是序列化概念的新手,请帮助理解概念。 究竟序列化意味着什么?我已阅读了该定义,但无法详细了解。

如何序列化基本类型(int,string)?

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

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

2 个答案:

答案 0 :(得分:0)

序列化只需要一个对象并将其转换为更简单的东西。想象一下,你在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,数据库表,内存或其他内容。这是example from Udemy regarding serialization

如果您不进行序列化,则会传输混淆。也许你的对象的ToString()将在传输之前被隐含地调用,并且任何结果都会被传输。因此,将数据转换为接收器友好的数据至关重要。

总会发生一些序列化。例如,当您执行填充DataTable的查询时,会发生序列化。

答案 1 :(得分:0)

概念:

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

你可以通过使它实现Serializable接口来创建一个Serializable类。

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

当程序完成序列化时,如果它存储在扩展名为.ser的文件中,那么它可以用于反序列化。 序列化为序列化对象提供serialVersionUID,必须匹配反序列化