序列化和数据库存储有什么区别在java中?序列化是否实际上意味着将数据存储在服务器上的数据库中?
答案 0 :(得分:7)
让我们把数据库想象成一个碗。
如果你想让东西无处可去,你就把它放在碗里。
您的东西是您要存储的数据。现在它在桌子上,在一个盒子里。
所以我们要从那个盒子里取出东西。问题是,我们盒子里的东西可能不适合放入碗中。我们如何解决这个问题?
我们需要将它改成适合我们碗的物体类型。我们需要序列化。
我们的序列化数据现在可以放入碗中。所以我们把我们的序列化数据拿到碗里,我们吃了当天最重要的一餐。
如果这一切都非常复杂。简化:序列化是更改,数据库是存储的地方。通常,在存储之前更改。
答案 1 :(得分:2)
序列化可用于为数据库存储准备对象 - 它是将对象转换为可存储或可传输格式的过程,例如字符串或字节流。
我们无法按原样将java对象存储到大多数普通存储类型中 - 但是如果我们将其序列化为JSON,我们可以存储它。然后,我们可以在稍后从存储中检索JSON并对其进行反序列化以获取与原始对象相同的对象,前提是序列化和反序列化已正确实现。
当然,这不需要数据库存储 - 例如将对象序列化为JSON流也允许我们通过互联网传输它以在另一台计算机上反序列化。
答案 2 :(得分:0)
没有。一点也不。 Java中的序列化是一种API,它生成一个对象的可存储版本,以后可以从磁盘(或存储它的任何地方)加载回来,并将其重新放回到一个对象中(希望!)曾经的状态。有一些替代方案,例如Google Protobufs,它们对于网络应用程序更好,但它对于大多数简单用途来说已经足够了。
答案 3 :(得分:0)
序列化是将数据结构转换为可以任何方式保存(保存在硬盘驱动器上)的表单的过程。它可以是二进制,xml,纯文本,html,...通常目标是能够反序列化,即在数据结构持久化时恢复它的状态。
数据库只是存储数据的地方(而不是方式)。