Java 序列化和数据库存储之间的区别

Java 序列化和数据库存储之间的区别,java,serialization,Java,Serialization,java中序列化和数据库存储的区别是什么?序列化实际上不意味着将数据存储在服务器上的数据库中吗?不。一点也不。Java中的序列化是一个API,它生成一个对象的可存储版本,您可以稍后从磁盘(或存储它的任何位置)加载回该对象,并使其返回到一个与以前状态相同的对象中。有其他替代方法,例如,对于网络应用程序更好,但对于大多数简单用途来说,它已经足够好了。序列化可用于准备对象用于数据库存储—它是将对象转换为可存储或可传输格式(如字符串或字节流)的过程 我们不能按原样将java对象存储到大多数普通的存储类型

java中序列化和数据库存储的区别是什么?序列化实际上不意味着将数据存储在服务器上的数据库中吗?

不。一点也不。Java中的序列化是一个API,它生成一个对象的可存储版本,您可以稍后从磁盘(或存储它的任何位置)加载回该对象,并使其返回到一个与以前状态相同的对象中。有其他替代方法,例如,对于网络应用程序更好,但对于大多数简单用途来说,它已经足够好了。

序列化可用于准备对象用于数据库存储—它是将对象转换为可存储或可传输格式(如字符串或字节流)的过程

我们不能按原样将java对象存储到大多数普通的存储类型中,但如果我们将其序列化为JSON,我们就可以存储它。然后,我们可以在稍后从存储中检索JSON并对其进行反序列化,以获得与原始对象相同的对象,前提是序列化和反序列化已正确实现


当然,这不一定需要数据库存储—例如,将对象序列化为JSON流也允许我们通过internet将其传输到另一台计算机上进行反序列化。

序列化是将数据结构转换为可以以任何方式持久化(保存在硬盘上)的形式的过程。它可以是二进制、xml、纯文本、html等等。。。通常,目标是能够反序列化,即恢复数据结构在持久化时的状态


数据库只是存储数据的地方(而不是存储数据的方式)。

让我们把数据库想象成一个碗

如果你不想让东西到处乱跑,你就把它放在碗里

你的东西就是你想要存储的数据。现在它就在那里,在桌子上,在盒子里。

所以我们要把箱子里的东西拿出来。问题是,我们盒子里的东西可能放不进碗里。我们如何解决这个问题

我们需要将其更改为适合我们碗的对象类型。我们需要对它进行序列化

我们的序列化数据现在可以放进碗里了。我们把序列化的数据倒进碗里,我们吃了一天中最重要的一餐


万一这一切真的很复杂。简化:序列化就是改变,而数据库就是存储东西的地方。通常情况下,在存储内容之前,您必须先更改内容。

第二个问题:不,甚至不接近。@Matt Ball我知道这与将文件上载到服务器不同,但序列化与将文件上载到服务器不同?@Purvesh否。可能会以这种方式结束(将文件放入服务器),但概念不同。广泛地。