我是序列化概念的新手,请帮助理解概念。 究竟序列化意味着什么?我已阅读了该定义,但无法详细了解。
如何序列化基本类型(int,string)?
如果我们不在代码中使用序列化,那么数据将如何传输?
从前端Java / C#代码访问数据库时是否涉及任何隐式序列化过程?示例从数据库插入/删除。
答案 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,必须匹配反序列化